!pip install pandas
Requirement already satisfied: pandas in c:\programdata\anaconda3\lib\site-packages (1.5.3) Requirement already satisfied: python-dateutil>=2.8.1 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2.8.2) Requirement already satisfied: numpy>=1.20.3 in c:\programdata\anaconda3\lib\site-packages (from pandas) (1.23.5) Requirement already satisfied: pytz>=2020.1 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2022.7) Requirement already satisfied: six>=1.5 in c:\programdata\anaconda3\lib\site-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)
[notice] A new release of pip available: 22.3.1 -> 23.0.1 [notice] To update, run: python.exe -m pip install --upgrade pip
import pandas as pd
import numpy as np
df = pd.read_csv("star_wars_character_dataset.csv")
df.head()
| name | height | mass | hair_color | skin_color | eye_color | birth_year | sex | gender | homeworld | species | films | vehicles | starships | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Luke Skywalker | 172.0 | 77.0 | blond | fair | blue | 19.0 | male | masculine | Tatooine | Human | The Empire Strikes Back, Revenge of the Sith, ... | Snowspeeder, Imperial Speeder Bike | X-wing, Imperial shuttle |
| 1 | C-3PO | 167.0 | 75.0 | NaN | gold | yellow | 112.0 | none | masculine | Tatooine | Droid | The Empire Strikes Back, Attack of the Clones,... | NaN | NaN |
| 2 | R2-D2 | 96.0 | 32.0 | NaN | white, blue | red | 33.0 | none | masculine | Naboo | Droid | The Empire Strikes Back, Attack of the Clones,... | NaN | NaN |
| 3 | Darth Vader | 202.0 | 136.0 | none | white | yellow | 41.9 | male | masculine | Tatooine | Human | The Empire Strikes Back, Revenge of the Sith, ... | NaN | TIE Advanced x1 |
| 4 | Leia Organa | 150.0 | 49.0 | brown | light | brown | 19.0 | female | feminine | Alderaan | Human | The Empire Strikes Back, Revenge of the Sith, ... | Imperial Speeder Bike | NaN |
df.shape
(87, 14)
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 87 entries, 0 to 86 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 name 87 non-null object 1 height 81 non-null float64 2 mass 59 non-null float64 3 hair_color 82 non-null object 4 skin_color 87 non-null object 5 eye_color 87 non-null object 6 birth_year 43 non-null float64 7 sex 83 non-null object 8 gender 83 non-null object 9 homeworld 77 non-null object 10 species 83 non-null object 11 films 87 non-null object 12 vehicles 11 non-null object 13 starships 20 non-null object dtypes: float64(3), object(11) memory usage: 9.6+ KB
df.isnull().sum()
name 0 height 6 mass 28 hair_color 5 skin_color 0 eye_color 0 birth_year 44 sex 4 gender 4 homeworld 10 species 4 films 0 vehicles 76 starships 67 dtype: int64
df.mass.describe()
count 59.000000 mean 97.311864 std 169.457163 min 15.000000 25% 55.600000 50% 79.000000 75% 84.500000 max 1358.000000 Name: mass, dtype: float64
## removing max mass to adjust the mean and std and filling null values with mean data
df.drop(df[df.mass == np.max(df.mass)].index,inplace=True)
df.mass.fillna(df.mass.mean(),inplace=True)
df.birth_year.describe()
count 42.000000 mean 75.364286 std 133.999900 min 8.000000 25% 34.000000 50% 50.000000 75% 70.750000 max 896.000000 Name: birth_year, dtype: float64
## removing max birth_year to adjust the mean and std and filling null values with mean data
df.drop(df[df.birth_year == np.max(df.birth_year)].index,inplace=True)
df.drop(df[df.birth_year == np.max(df.birth_year)].index,inplace=True)
df.birth_year.fillna(df.birth_year.mean(),inplace=True)
df.birth_year.describe()
count 84.000000 mean 51.732500 std 17.313345 min 8.000000 25% 50.799375 50% 51.732500 75% 51.732500 max 112.000000 Name: birth_year, dtype: float64
df["hair_color"] = df.hair_color.str.split(',').str[0]
df["eye_color"] = df.eye_color.str.split(',').str[0]
df["skin_color"] = df.skin_color.str.split(',').str[0]
df["hair_color"].value_counts()
none 37 brown 18 black 13 blond 3 auburn 3 white 3 grey 1 blonde 1 unknown 1 Name: hair_color, dtype: int64
## filling null values for hair color with none
df.hair_color.fillna('none',inplace=True)
df.species.value_counts()
Human 35 Droid 6 Gungan 3 Mirialan 2 Twi'lek 2 Zabrak 2 Kaminoan 2 Aleena 1 Skakoan 1 Quermian 1 Besalisk 1 Muun 1 Togruta 1 Clawdite 1 Kaleesh 1 Geonosian 1 Chagrian 1 Wookiee 1 Kel Dor 1 Nautolan 1 Iktotchi 1 Tholothian 1 Cerean 1 Toong 1 Xexto 1 Vulptereen 1 Dug 1 Toydarian 1 Neimodian 1 Sullustan 1 Ewok 1 Mon Calamari 1 Trandoshan 1 Rodian 1 Pau'an 1 Name: species, dtype: int64
df.homeworld.value_counts().count()
47
## filling null values for sex, gender, homeworld and species with random
import random
df.gender.fillna(random.choice(['masculine','feminine']),inplace=True)
df.sex.fillna(random.choice(['female','male','hermaphroditic']),inplace=True)
df.homeworld.fillna(random.choice(['Naboo','Tatooine']),inplace=True)
df.species.fillna(random.choice(['Human','Droid']),inplace=True)
df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 84 entries, 0 to 86 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 name 84 non-null object 1 height 78 non-null float64 2 mass 84 non-null float64 3 hair_color 84 non-null object 4 skin_color 84 non-null object 5 eye_color 84 non-null object 6 birth_year 84 non-null float64 7 sex 84 non-null object 8 gender 84 non-null object 9 homeworld 84 non-null object 10 species 84 non-null object 11 films 84 non-null object 12 vehicles 10 non-null object 13 starships 19 non-null object dtypes: float64(3), object(11) memory usage: 9.8+ KB
## removing vehicles and starships as it's mostly empty and filling mean height for remaining dataframe
df.drop(['vehicles','starships'],axis=1,inplace=True)
df.height.fillna(df.height.mean(),inplace=True)
## no duplicate values
df.duplicated().sum()
0
df
| name | height | mass | hair_color | skin_color | eye_color | birth_year | sex | gender | homeworld | species | films | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Luke Skywalker | 172.000000 | 77.000000 | blond | fair | blue | 19.0000 | male | masculine | Tatooine | Human | The Empire Strikes Back, Revenge of the Sith, ... |
| 1 | C-3PO | 167.000000 | 75.000000 | none | gold | yellow | 112.0000 | none | masculine | Tatooine | Droid | The Empire Strikes Back, Attack of the Clones,... |
| 2 | R2-D2 | 96.000000 | 32.000000 | none | white | red | 33.0000 | none | masculine | Naboo | Droid | The Empire Strikes Back, Attack of the Clones,... |
| 3 | Darth Vader | 202.000000 | 136.000000 | none | white | yellow | 41.9000 | male | masculine | Tatooine | Human | The Empire Strikes Back, Revenge of the Sith, ... |
| 4 | Leia Organa | 150.000000 | 49.000000 | brown | light | brown | 19.0000 | female | feminine | Alderaan | Human | The Empire Strikes Back, Revenge of the Sith, ... |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 82 | Rey | 175.051282 | 75.575862 | brown | light | hazel | 51.7325 | female | feminine | Naboo | Human | The Force Awakens |
| 83 | Poe Dameron | 175.051282 | 75.575862 | brown | light | brown | 51.7325 | male | masculine | Naboo | Human | The Force Awakens |
| 84 | BB8 | 175.051282 | 75.575862 | none | none | black | 51.7325 | none | masculine | Naboo | Droid | The Force Awakens |
| 85 | Captain Phasma | 175.051282 | 75.575862 | unknown | unknown | unknown | 51.7325 | hermaphroditic | masculine | Naboo | Human | The Force Awakens |
| 86 | Padmé Amidala | 165.000000 | 45.000000 | brown | light | brown | 46.0000 | female | feminine | Naboo | Human | Attack of the Clones, The Phantom Menace, Reve... |
84 rows × 12 columns
df_object = df[['hair_color','skin_color','eye_color','sex','gender','species','films']]
df_float = df[['height','mass','birth_year']]
# Training the Model
from sklearn.linear_model import LogisticRegression
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OrdinalEncoder, OneHotEncoder
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(
ColumnTransformer(
transformers=[
("encode", OneHotEncoder(), ["hair_color", "skin_color", "eye_color", "sex", "gender", "species", "films"]),
],
remainder="passthrough",
),
)
enco = pipe.fit_transform(df_object).toarray()
enco.shape, df_float.shape
((84, 107), (84, 3))
frames = [enco, df_float.values]
X = np.concatenate(frames, axis = 1)
X
array([[ 0. , 0. , 1. , ..., 172. ,
77. , 19. ],
[ 0. , 0. , 0. , ..., 167. ,
75. , 112. ],
[ 0. , 0. , 0. , ..., 96. ,
32. , 33. ],
...,
[ 0. , 0. , 0. , ..., 175.05128205,
75.57586207, 51.7325 ],
[ 0. , 0. , 0. , ..., 175.05128205,
75.57586207, 51.7325 ],
[ 0. , 0. , 0. , ..., 165. ,
45. , 46. ]])
ordinalencoder = OrdinalEncoder()
y = (ordinalencoder.fit_transform(df.homeworld.values.reshape(-1,1)))
y.shape
(84, 1)
ordinalencoder.categories_
[array(['Alderaan', 'Aleen Minor', 'Bespin', 'Bestine IV',
'Cato Neimoidia', 'Cerea', 'Champala', 'Chandrila', 'Concord Dawn',
'Corellia', 'Coruscant', 'Dathomir', 'Dorin', 'Endor', 'Eriadu',
'Geonosis', 'Glee Anselm', 'Haruun Kal', 'Iktotch', 'Iridonia',
'Kalee', 'Kamino', 'Kashyyyk', 'Malastare', 'Mirial', 'Mon Cala',
'Muunilinst', 'Naboo', 'Ojom', 'Quermia', 'Rodia', 'Ryloth',
'Serenno', 'Shili', 'Skako', 'Socorro', 'Stewjon', 'Sullust',
'Tatooine', 'Toydaria', 'Trandosha', 'Troiken', 'Tund', 'Umbara',
'Utapau', 'Vulpter', 'Zolan'], dtype=object)]
for i, n in enumerate(ordinalencoder.categories_[0]):
print(i, n)
0 Alderaan 1 Aleen Minor 2 Bespin 3 Bestine IV 4 Cato Neimoidia 5 Cerea 6 Champala 7 Chandrila 8 Concord Dawn 9 Corellia 10 Coruscant 11 Dathomir 12 Dorin 13 Endor 14 Eriadu 15 Geonosis 16 Glee Anselm 17 Haruun Kal 18 Iktotch 19 Iridonia 20 Kalee 21 Kamino 22 Kashyyyk 23 Malastare 24 Mirial 25 Mon Cala 26 Muunilinst 27 Naboo 28 Ojom 29 Quermia 30 Rodia 31 Ryloth 32 Serenno 33 Shili 34 Skako 35 Socorro 36 Stewjon 37 Sullust 38 Tatooine 39 Toydaria 40 Trandosha 41 Troiken 42 Tund 43 Umbara 44 Utapau 45 Vulpter 46 Zolan
from imblearn.over_sampling import RandomOverSampler
rus = RandomOverSampler(random_state=0)
rus.fit(X, y)
X_train_smote, y_train_smote = rus.fit_resample(X, y)
X_train_smote.shape, y_train_smote.shape
((940, 110), (940,))
# Split the Data into train and test
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X_train_smote,y_train_smote,test_size=0.3,random_state=42)
#shapes of splitted data
print("X_train:",X_train.shape)
print("X_test:",X_test.shape)
print("Y_train:",y_train.shape)
print("Y_test:",y_test.shape)
X_train: (658, 110) X_test: (282, 110) Y_train: (658,) Y_test: (282,)
logi = LogisticRegression()
baseline = logi.fit(X_train, y_train)
C:\Users\riyup\.conda\envs\tf_venv\lib\site-packages\sklearn\linear_model\_logistic.py:458: ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
Increase the number of iterations (max_iter) or scale the data as shown in:
https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
n_iter_i = _check_optimize_result(
y_pred = baseline.predict(X_test)
from sklearn.metrics import r2_score, accuracy_score, f1_score, mean_squared_error, confusion_matrix
r2_score_value = r2_score(y_test, y_pred)
r2_score_value
0.7601965426922674
accuracy_score(y_test, y_pred)
0.8829787234042553
import seaborn as sns
sns.regplot(x=y_test, y=y_pred, ci=None, scatter_kws={"color": "black"}, line_kws={"color": "red"});
import math
mse_baseline = mean_squared_error(y_test, y_pred)
rmse_baseline = math.sqrt(mse_baseline)
print("Root Mean Squared Error: ", rmse_baseline)
print("Mean Squared Error: ", mse_baseline)
Root Mean Squared Error: 6.4667726831991095 Mean Squared Error: 41.819148936170215
import tensorflow as tf
from tensorflow.keras import layers, optimizers
X_train_tf = tf.convert_to_tensor(X_train.astype(np.float64))
X_test_tf = tf.convert_to_tensor(X_test.astype(np.float64))
y_train_tf = tf.convert_to_tensor(y_train.astype(np.float64))
y_test_tf = tf.convert_to_tensor(y_test.astype(np.float64))
X_train.shape, X_test.shape
((658, 110), (282, 110))
X_test_tf.shape, X_train_tf.shape
(TensorShape([282, 110]), TensorShape([658, 110]))
import matplotlib.pyplot as plt
def plot_loss_curves(history):
"""
Returns separate loss curves for training and validation metrics.
Args:
history: TensorFlow model History object (see: https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/History)
"""
loss = history.history['loss']
val_loss = history.history['val_loss']
accuracy = history.history['accuracy']
val_accuracy = history.history['val_accuracy']
epochs = range(len(history.history['loss']))
# Plot accuracy
plt.figure()
plt.plot(epochs, loss, label='train_loss')
plt.plot(epochs, val_loss, label='val_loss')
plt.title('Loss')
plt.xlabel('Epochs')
plt.legend();
# Plot accuracy
plt.figure()
plt.plot(epochs, accuracy, label='train_accuracy')
plt.plot(epochs, val_accuracy, label='val_accuracy')
plt.title('Accuracy')
plt.xlabel('Epochs')
plt.legend();
model_1 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_1.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.Adam(), metrics=["accuracy"])
history_1 = model_1.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 1s 11ms/step - loss: 11.3743 - accuracy: 0.0289 - val_loss: 5.4935 - val_accuracy: 0.0355 Epoch 2/100 21/21 [==============================] - 0s 4ms/step - loss: 4.5734 - accuracy: 0.0836 - val_loss: 3.5204 - val_accuracy: 0.1383 Epoch 3/100 21/21 [==============================] - 0s 4ms/step - loss: 3.0919 - accuracy: 0.2204 - val_loss: 2.7962 - val_accuracy: 0.3227 Epoch 4/100 21/21 [==============================] - 0s 5ms/step - loss: 2.3759 - accuracy: 0.4438 - val_loss: 2.2907 - val_accuracy: 0.5390 Epoch 5/100 21/21 [==============================] - 0s 6ms/step - loss: 1.9371 - accuracy: 0.5502 - val_loss: 1.9377 - val_accuracy: 0.6170 Epoch 6/100 21/21 [==============================] - 0s 5ms/step - loss: 1.5749 - accuracy: 0.7249 - val_loss: 1.6013 - val_accuracy: 0.6879 Epoch 7/100 21/21 [==============================] - 0s 4ms/step - loss: 1.3267 - accuracy: 0.7872 - val_loss: 1.3394 - val_accuracy: 0.7837 Epoch 8/100 21/21 [==============================] - 0s 5ms/step - loss: 1.1487 - accuracy: 0.8161 - val_loss: 1.0488 - val_accuracy: 0.9220 Epoch 9/100 21/21 [==============================] - 0s 3ms/step - loss: 0.9799 - accuracy: 0.8556 - val_loss: 0.9168 - val_accuracy: 0.8972 Epoch 10/100 21/21 [==============================] - 0s 3ms/step - loss: 0.8312 - accuracy: 0.9073 - val_loss: 0.8775 - val_accuracy: 0.8546 Epoch 11/100 21/21 [==============================] - 0s 3ms/step - loss: 0.7005 - accuracy: 0.9088 - val_loss: 0.7926 - val_accuracy: 0.8794 Epoch 12/100 21/21 [==============================] - 0s 3ms/step - loss: 0.5750 - accuracy: 0.9392 - val_loss: 0.6272 - val_accuracy: 0.8830 Epoch 13/100 21/21 [==============================] - 0s 3ms/step - loss: 0.5058 - accuracy: 0.9514 - val_loss: 0.5460 - val_accuracy: 0.9504 Epoch 14/100 21/21 [==============================] - 0s 3ms/step - loss: 0.4139 - accuracy: 0.9574 - val_loss: 0.4873 - val_accuracy: 0.9397 Epoch 15/100 21/21 [==============================] - 0s 3ms/step - loss: 0.3812 - accuracy: 0.9620 - val_loss: 0.4014 - val_accuracy: 0.9468 Epoch 16/100 21/21 [==============================] - 0s 4ms/step - loss: 0.3299 - accuracy: 0.9681 - val_loss: 0.3380 - val_accuracy: 0.9610 Epoch 17/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2963 - accuracy: 0.9711 - val_loss: 0.3254 - val_accuracy: 0.9610 Epoch 18/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2547 - accuracy: 0.9757 - val_loss: 0.2995 - val_accuracy: 0.9645 Epoch 19/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2407 - accuracy: 0.9726 - val_loss: 0.2841 - val_accuracy: 0.9504 Epoch 20/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2113 - accuracy: 0.9787 - val_loss: 0.2558 - val_accuracy: 0.9645 Epoch 21/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1837 - accuracy: 0.9878 - val_loss: 0.2342 - val_accuracy: 0.9645 Epoch 22/100 21/21 [==============================] - 0s 4ms/step - loss: 0.1701 - accuracy: 0.9802 - val_loss: 0.1885 - val_accuracy: 0.9787 Epoch 23/100 21/21 [==============================] - 0s 4ms/step - loss: 0.1496 - accuracy: 0.9863 - val_loss: 0.2241 - val_accuracy: 0.9645 Epoch 24/100 21/21 [==============================] - 0s 4ms/step - loss: 0.1523 - accuracy: 0.9818 - val_loss: 0.2642 - val_accuracy: 0.9574 Epoch 25/100 21/21 [==============================] - 0s 4ms/step - loss: 0.1297 - accuracy: 0.9878 - val_loss: 0.1752 - val_accuracy: 0.9752 Epoch 26/100 21/21 [==============================] - 0s 4ms/step - loss: 0.1234 - accuracy: 0.9894 - val_loss: 0.2092 - val_accuracy: 0.9610 Epoch 27/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1310 - accuracy: 0.9833 - val_loss: 0.1530 - val_accuracy: 0.9858 Epoch 28/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1055 - accuracy: 0.9894 - val_loss: 0.1248 - val_accuracy: 0.9929 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0897 - accuracy: 0.9939 - val_loss: 0.1294 - val_accuracy: 0.9965 Epoch 30/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0954 - accuracy: 0.9863 - val_loss: 0.1403 - val_accuracy: 0.9894 Epoch 31/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0979 - accuracy: 0.9909 - val_loss: 0.1130 - val_accuracy: 0.9965 Epoch 32/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0929 - accuracy: 0.9924 - val_loss: 0.1379 - val_accuracy: 0.9858 Epoch 33/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0828 - accuracy: 0.9924 - val_loss: 0.1263 - val_accuracy: 0.9823 Epoch 34/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0744 - accuracy: 0.9924 - val_loss: 0.0969 - val_accuracy: 0.9894 Epoch 35/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0656 - accuracy: 0.9954 - val_loss: 0.0934 - val_accuracy: 0.9965 Epoch 36/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0611 - accuracy: 0.9954 - val_loss: 0.1087 - val_accuracy: 0.9823 Epoch 37/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0617 - accuracy: 0.9939 - val_loss: 0.1059 - val_accuracy: 0.9823 Epoch 38/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0665 - accuracy: 0.9924 - val_loss: 0.0917 - val_accuracy: 0.9894 Epoch 39/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0656 - accuracy: 0.9894 - val_loss: 0.0861 - val_accuracy: 0.9894 Epoch 40/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0500 - accuracy: 0.9970 - val_loss: 0.0759 - val_accuracy: 0.9965 Epoch 41/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0448 - accuracy: 0.9970 - val_loss: 0.0829 - val_accuracy: 0.9894 Epoch 42/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0460 - accuracy: 0.9970 - val_loss: 0.0790 - val_accuracy: 0.9929 Epoch 43/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0408 - accuracy: 0.9954 - val_loss: 0.0802 - val_accuracy: 0.9894 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0394 - accuracy: 0.9970 - val_loss: 0.0794 - val_accuracy: 0.9894 Epoch 45/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0387 - accuracy: 0.9970 - val_loss: 0.0749 - val_accuracy: 0.9823 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0342 - accuracy: 1.0000 - val_loss: 0.0720 - val_accuracy: 0.9894 Epoch 47/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0350 - accuracy: 0.9954 - val_loss: 0.0638 - val_accuracy: 0.9965 Epoch 48/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0345 - accuracy: 0.9970 - val_loss: 0.0606 - val_accuracy: 0.9965 Epoch 49/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0364 - accuracy: 0.9970 - val_loss: 0.0696 - val_accuracy: 0.9929 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0309 - accuracy: 0.9985 - val_loss: 0.0834 - val_accuracy: 0.9787 Epoch 51/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0293 - accuracy: 0.9985 - val_loss: 0.0670 - val_accuracy: 0.9894 Epoch 52/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0264 - accuracy: 1.0000 - val_loss: 0.0648 - val_accuracy: 0.9894 Epoch 53/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0277 - accuracy: 0.9985 - val_loss: 0.0562 - val_accuracy: 0.9965 Epoch 54/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0319 - accuracy: 0.9970 - val_loss: 0.0709 - val_accuracy: 0.9858 Epoch 55/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0309 - accuracy: 0.9970 - val_loss: 0.0694 - val_accuracy: 0.9823 Epoch 56/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0243 - accuracy: 0.9985 - val_loss: 0.0523 - val_accuracy: 0.9965 Epoch 57/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0228 - accuracy: 1.0000 - val_loss: 0.0661 - val_accuracy: 0.9858 Epoch 58/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0280 - accuracy: 0.9985 - val_loss: 0.0714 - val_accuracy: 0.9823 Epoch 59/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0210 - accuracy: 1.0000 - val_loss: 0.0563 - val_accuracy: 0.9894 Epoch 60/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0198 - accuracy: 1.0000 - val_loss: 0.0526 - val_accuracy: 0.9965 Epoch 61/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0207 - accuracy: 0.9985 - val_loss: 0.0584 - val_accuracy: 0.9894 Epoch 62/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0182 - accuracy: 1.0000 - val_loss: 0.0503 - val_accuracy: 0.9965 Epoch 63/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0168 - accuracy: 1.0000 - val_loss: 0.0476 - val_accuracy: 0.9965 Epoch 64/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0167 - accuracy: 0.9985 - val_loss: 0.0520 - val_accuracy: 0.9929 Epoch 65/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0157 - accuracy: 1.0000 - val_loss: 0.0519 - val_accuracy: 0.9965 Epoch 66/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0162 - accuracy: 1.0000 - val_loss: 0.0465 - val_accuracy: 0.9965 Epoch 67/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0153 - accuracy: 1.0000 - val_loss: 0.0465 - val_accuracy: 0.9965 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0142 - accuracy: 1.0000 - val_loss: 0.0526 - val_accuracy: 0.9929 Epoch 69/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0174 - accuracy: 0.9985 - val_loss: 0.0583 - val_accuracy: 0.9823 Epoch 70/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0219 - accuracy: 0.9970 - val_loss: 0.0635 - val_accuracy: 0.9787 Epoch 71/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0152 - accuracy: 1.0000 - val_loss: 0.0457 - val_accuracy: 0.9965 Epoch 72/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0129 - accuracy: 1.0000 - val_loss: 0.0571 - val_accuracy: 0.9823 Epoch 73/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0134 - accuracy: 1.0000 - val_loss: 0.0465 - val_accuracy: 0.9965 Epoch 74/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0128 - accuracy: 0.9985 - val_loss: 0.0444 - val_accuracy: 0.9965 Epoch 75/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0111 - accuracy: 1.0000 - val_loss: 0.0497 - val_accuracy: 0.9965 Epoch 76/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0120 - accuracy: 1.0000 - val_loss: 0.0460 - val_accuracy: 0.9965 Epoch 77/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0106 - accuracy: 1.0000 - val_loss: 0.0433 - val_accuracy: 0.9965 Epoch 78/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0107 - accuracy: 1.0000 - val_loss: 0.0439 - val_accuracy: 0.9965 Epoch 79/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0110 - accuracy: 1.0000 - val_loss: 0.0473 - val_accuracy: 0.9858 Epoch 80/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0110 - accuracy: 1.0000 - val_loss: 0.0431 - val_accuracy: 0.9965 Epoch 81/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0109 - accuracy: 1.0000 - val_loss: 0.0440 - val_accuracy: 0.9965 Epoch 82/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0114 - accuracy: 1.0000 - val_loss: 0.0444 - val_accuracy: 0.9965 Epoch 83/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0117 - accuracy: 0.9985 - val_loss: 0.0419 - val_accuracy: 0.9929 Epoch 84/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0087 - accuracy: 1.0000 - val_loss: 0.0494 - val_accuracy: 0.9965 Epoch 85/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0092 - accuracy: 1.0000 - val_loss: 0.0424 - val_accuracy: 0.9965 Epoch 86/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0083 - accuracy: 1.0000 - val_loss: 0.0454 - val_accuracy: 0.9894 Epoch 87/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0081 - accuracy: 1.0000 - val_loss: 0.0477 - val_accuracy: 0.9965 Epoch 88/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0079 - accuracy: 1.0000 - val_loss: 0.0420 - val_accuracy: 0.9965 Epoch 89/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0079 - accuracy: 1.0000 - val_loss: 0.0422 - val_accuracy: 0.9965 Epoch 90/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0077 - accuracy: 1.0000 - val_loss: 0.0453 - val_accuracy: 0.9965 Epoch 91/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0070 - accuracy: 1.0000 - val_loss: 0.0411 - val_accuracy: 0.9965 Epoch 92/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0072 - accuracy: 1.0000 - val_loss: 0.0419 - val_accuracy: 0.9965 Epoch 93/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0074 - accuracy: 1.0000 - val_loss: 0.0456 - val_accuracy: 0.9965 Epoch 94/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0069 - accuracy: 1.0000 - val_loss: 0.0415 - val_accuracy: 0.9965 Epoch 95/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0066 - accuracy: 1.0000 - val_loss: 0.0436 - val_accuracy: 0.9965 Epoch 96/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0065 - accuracy: 1.0000 - val_loss: 0.0456 - val_accuracy: 0.9965 Epoch 97/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0069 - accuracy: 1.0000 - val_loss: 0.0414 - val_accuracy: 0.9965 Epoch 98/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0063 - accuracy: 1.0000 - val_loss: 0.0418 - val_accuracy: 0.9965 Epoch 99/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0058 - accuracy: 1.0000 - val_loss: 0.0469 - val_accuracy: 0.9894 Epoch 100/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0063 - accuracy: 1.0000 - val_loss: 0.0419 - val_accuracy: 0.9965
y_pred_1 = model_1.predict(X_test_tf)
9/9 [==============================] - 0s 1ms/step
model_1.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 982us/step - loss: 0.0419 - accuracy: 0.9965
[0.04191071540117264, 0.9964538812637329]
df_history_1 = pd.DataFrame(history_1.history)
df_history_1
| loss | accuracy | val_loss | val_accuracy | |
|---|---|---|---|---|
| 0 | 11.374345 | 0.028875 | 5.493479 | 0.035461 |
| 1 | 4.573410 | 0.083587 | 3.520423 | 0.138298 |
| 2 | 3.091890 | 0.220365 | 2.796206 | 0.322695 |
| 3 | 2.375943 | 0.443769 | 2.290737 | 0.539007 |
| 4 | 1.937063 | 0.550152 | 1.937668 | 0.617021 |
| ... | ... | ... | ... | ... |
| 95 | 0.006547 | 1.000000 | 0.045550 | 0.996454 |
| 96 | 0.006922 | 1.000000 | 0.041447 | 0.996454 |
| 97 | 0.006258 | 1.000000 | 0.041751 | 0.996454 |
| 98 | 0.005798 | 1.000000 | 0.046906 | 0.989362 |
| 99 | 0.006344 | 1.000000 | 0.041911 | 0.996454 |
100 rows × 4 columns
import plotly.express as px
fig = px.line(df_history_1, y=['loss', 'val_loss'], labels=['Loss', 'Validation Loss'])
fig.show()
model_2 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_2.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.SGD(), metrics=["accuracy"])
history_2 = model_2.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 0s 10ms/step - loss: 20.4059 - accuracy: 0.0152 - val_loss: 3.8965 - val_accuracy: 0.0071 Epoch 2/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8435 - accuracy: 0.0198 - val_loss: 3.8382 - val_accuracy: 0.0035 Epoch 3/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8376 - accuracy: 0.0289 - val_loss: 3.8410 - val_accuracy: 0.0213 Epoch 4/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8370 - accuracy: 0.0456 - val_loss: 3.8402 - val_accuracy: 0.0213 Epoch 5/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8336 - accuracy: 0.0441 - val_loss: 3.8607 - val_accuracy: 0.0177 Epoch 6/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8314 - accuracy: 0.0441 - val_loss: 3.8511 - val_accuracy: 0.0177 Epoch 7/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8232 - accuracy: 0.0486 - val_loss: 3.8304 - val_accuracy: 0.0213 Epoch 8/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8177 - accuracy: 0.0441 - val_loss: 3.8261 - val_accuracy: 0.0213 Epoch 9/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8183 - accuracy: 0.0426 - val_loss: 3.8249 - val_accuracy: 0.0213 Epoch 10/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8077 - accuracy: 0.0456 - val_loss: 3.8186 - val_accuracy: 0.0213 Epoch 11/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8067 - accuracy: 0.0334 - val_loss: 3.8415 - val_accuracy: 0.0000e+00 Epoch 12/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8480 - accuracy: 0.0274 - val_loss: 3.8520 - val_accuracy: 0.0035 Epoch 13/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8446 - accuracy: 0.0289 - val_loss: 3.8468 - val_accuracy: 0.0035 Epoch 14/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8440 - accuracy: 0.0228 - val_loss: 3.8516 - val_accuracy: 0.0035 Epoch 15/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8418 - accuracy: 0.0213 - val_loss: 3.8285 - val_accuracy: 0.0000e+00 Epoch 16/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8416 - accuracy: 0.0106 - val_loss: 3.8403 - val_accuracy: 0.0035 Epoch 17/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8381 - accuracy: 0.0274 - val_loss: 3.8376 - val_accuracy: 0.0213 Epoch 18/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8310 - accuracy: 0.0380 - val_loss: 3.8154 - val_accuracy: 0.0177 Epoch 19/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8286 - accuracy: 0.0365 - val_loss: 3.8423 - val_accuracy: 0.0213 Epoch 20/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8285 - accuracy: 0.0456 - val_loss: 3.8414 - val_accuracy: 0.0213 Epoch 21/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8163 - accuracy: 0.0274 - val_loss: 3.8353 - val_accuracy: 0.0213 Epoch 22/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8191 - accuracy: 0.0395 - val_loss: 3.8366 - val_accuracy: 0.0213 Epoch 23/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8036 - accuracy: 0.0350 - val_loss: 3.8184 - val_accuracy: 0.0213 Epoch 24/100 21/21 [==============================] - 0s 4ms/step - loss: 3.7872 - accuracy: 0.0258 - val_loss: 3.7687 - val_accuracy: 0.0177 Epoch 25/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7785 - accuracy: 0.0243 - val_loss: 3.8283 - val_accuracy: 0.0213 Epoch 26/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7762 - accuracy: 0.0410 - val_loss: 3.7586 - val_accuracy: 0.0177 Epoch 27/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7826 - accuracy: 0.0334 - val_loss: 3.8165 - val_accuracy: 0.0213 Epoch 28/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7501 - accuracy: 0.0289 - val_loss: 3.8179 - val_accuracy: 0.0177 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7713 - accuracy: 0.0319 - val_loss: 3.7451 - val_accuracy: 0.0177 Epoch 30/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7681 - accuracy: 0.0410 - val_loss: 3.7596 - val_accuracy: 0.0177 Epoch 31/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7470 - accuracy: 0.0350 - val_loss: 3.7624 - val_accuracy: 0.0213 Epoch 32/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7323 - accuracy: 0.0395 - val_loss: 3.8113 - val_accuracy: 0.0213 Epoch 33/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7594 - accuracy: 0.0426 - val_loss: 3.7654 - val_accuracy: 0.0213 Epoch 34/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7179 - accuracy: 0.0350 - val_loss: 3.8115 - val_accuracy: 0.0213 Epoch 35/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7440 - accuracy: 0.0334 - val_loss: 3.7497 - val_accuracy: 0.0213 Epoch 36/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7035 - accuracy: 0.0258 - val_loss: 3.7566 - val_accuracy: 0.0213 Epoch 37/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7108 - accuracy: 0.0319 - val_loss: 3.8110 - val_accuracy: 0.0213 Epoch 38/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7032 - accuracy: 0.0289 - val_loss: 3.6679 - val_accuracy: 0.0177 Epoch 39/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6573 - accuracy: 0.0228 - val_loss: 3.7131 - val_accuracy: 0.0177 Epoch 40/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6707 - accuracy: 0.0274 - val_loss: 3.7150 - val_accuracy: 0.0177 Epoch 41/100 21/21 [==============================] - 0s 4ms/step - loss: 3.6636 - accuracy: 0.0258 - val_loss: 3.8201 - val_accuracy: 0.0213 Epoch 42/100 21/21 [==============================] - 0s 4ms/step - loss: 3.7550 - accuracy: 0.0441 - val_loss: 3.6304 - val_accuracy: 0.0177 Epoch 43/100 21/21 [==============================] - 0s 4ms/step - loss: 3.6356 - accuracy: 0.0243 - val_loss: 3.6168 - val_accuracy: 0.0177 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6505 - accuracy: 0.0532 - val_loss: 3.6092 - val_accuracy: 0.0248 Epoch 45/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6004 - accuracy: 0.0517 - val_loss: 3.6050 - val_accuracy: 0.0248 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6023 - accuracy: 0.0456 - val_loss: 3.5991 - val_accuracy: 0.0248 Epoch 47/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6858 - accuracy: 0.0441 - val_loss: 3.8104 - val_accuracy: 0.0248 Epoch 48/100 21/21 [==============================] - 0s 4ms/step - loss: 3.6234 - accuracy: 0.0517 - val_loss: 3.5895 - val_accuracy: 0.0248 Epoch 49/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5888 - accuracy: 0.0486 - val_loss: 3.5874 - val_accuracy: 0.0248 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5675 - accuracy: 0.0486 - val_loss: 3.5750 - val_accuracy: 0.0248 Epoch 51/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5661 - accuracy: 0.0547 - val_loss: 3.6012 - val_accuracy: 0.0248 Epoch 52/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5781 - accuracy: 0.0562 - val_loss: 3.5698 - val_accuracy: 0.0248 Epoch 53/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5633 - accuracy: 0.0517 - val_loss: 3.5678 - val_accuracy: 0.0248 Epoch 54/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5579 - accuracy: 0.0517 - val_loss: 3.5575 - val_accuracy: 0.0248 Epoch 55/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5433 - accuracy: 0.0502 - val_loss: 3.5671 - val_accuracy: 0.0248 Epoch 56/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5477 - accuracy: 0.0426 - val_loss: 3.5610 - val_accuracy: 0.0248 Epoch 57/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5453 - accuracy: 0.0532 - val_loss: 3.5900 - val_accuracy: 0.0248 Epoch 58/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5359 - accuracy: 0.0502 - val_loss: 3.5496 - val_accuracy: 0.0390 Epoch 59/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5560 - accuracy: 0.0578 - val_loss: 3.5548 - val_accuracy: 0.0248 Epoch 60/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5289 - accuracy: 0.0502 - val_loss: 3.5567 - val_accuracy: 0.0248 Epoch 61/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5300 - accuracy: 0.0502 - val_loss: 3.5404 - val_accuracy: 0.0248 Epoch 62/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5253 - accuracy: 0.0578 - val_loss: 3.5377 - val_accuracy: 0.0248 Epoch 63/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5191 - accuracy: 0.0486 - val_loss: 3.5348 - val_accuracy: 0.0248 Epoch 64/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5327 - accuracy: 0.0532 - val_loss: 3.5337 - val_accuracy: 0.0142 Epoch 65/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5121 - accuracy: 0.0547 - val_loss: 3.5407 - val_accuracy: 0.0248 Epoch 66/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5211 - accuracy: 0.0486 - val_loss: 3.5370 - val_accuracy: 0.0248 Epoch 67/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5087 - accuracy: 0.0547 - val_loss: 3.5410 - val_accuracy: 0.0461 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4652 - accuracy: 0.0669 - val_loss: 3.6191 - val_accuracy: 0.0532 Epoch 69/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4913 - accuracy: 0.0729 - val_loss: 3.5274 - val_accuracy: 0.0426 Epoch 70/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4713 - accuracy: 0.0623 - val_loss: 3.5469 - val_accuracy: 0.0248 Epoch 71/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5066 - accuracy: 0.0441 - val_loss: 3.5392 - val_accuracy: 0.0248 Epoch 72/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5066 - accuracy: 0.0532 - val_loss: 3.5302 - val_accuracy: 0.0248 Epoch 73/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4997 - accuracy: 0.0517 - val_loss: 3.5379 - val_accuracy: 0.0248 Epoch 74/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4970 - accuracy: 0.0471 - val_loss: 3.5351 - val_accuracy: 0.0248 Epoch 75/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5022 - accuracy: 0.0502 - val_loss: 3.5280 - val_accuracy: 0.0248 Epoch 76/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4876 - accuracy: 0.0456 - val_loss: 3.4635 - val_accuracy: 0.0355 Epoch 77/100 21/21 [==============================] - 0s 3ms/step - loss: 3.3869 - accuracy: 0.0684 - val_loss: 3.4348 - val_accuracy: 0.0319 Epoch 78/100 21/21 [==============================] - 0s 3ms/step - loss: 3.3410 - accuracy: 0.0927 - val_loss: 3.4583 - val_accuracy: 0.0390 Epoch 79/100 21/21 [==============================] - 0s 3ms/step - loss: 3.3423 - accuracy: 0.0729 - val_loss: 3.3591 - val_accuracy: 0.0390 Epoch 80/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2987 - accuracy: 0.0745 - val_loss: 3.4295 - val_accuracy: 0.0426 Epoch 81/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2729 - accuracy: 0.0775 - val_loss: 3.3685 - val_accuracy: 0.0426 Epoch 82/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2259 - accuracy: 0.0805 - val_loss: 3.3374 - val_accuracy: 0.0496 Epoch 83/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2412 - accuracy: 0.0745 - val_loss: 3.3074 - val_accuracy: 0.0319 Epoch 84/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2263 - accuracy: 0.0745 - val_loss: 3.3043 - val_accuracy: 0.0426 Epoch 85/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1720 - accuracy: 0.0836 - val_loss: 3.2140 - val_accuracy: 0.0319 Epoch 86/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1747 - accuracy: 0.0851 - val_loss: 3.2157 - val_accuracy: 0.0390 Epoch 87/100 21/21 [==============================] - 0s 4ms/step - loss: 3.1288 - accuracy: 0.0805 - val_loss: 3.2095 - val_accuracy: 0.0496 Epoch 88/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1460 - accuracy: 0.0836 - val_loss: 3.1958 - val_accuracy: 0.0426 Epoch 89/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1673 - accuracy: 0.0942 - val_loss: 3.2467 - val_accuracy: 0.0496 Epoch 90/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2416 - accuracy: 0.0942 - val_loss: 3.1322 - val_accuracy: 0.0851 Epoch 91/100 21/21 [==============================] - 0s 3ms/step - loss: 3.0884 - accuracy: 0.0760 - val_loss: 3.1839 - val_accuracy: 0.1064 Epoch 92/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1396 - accuracy: 0.0866 - val_loss: 3.2761 - val_accuracy: 0.0461 Epoch 93/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1014 - accuracy: 0.0866 - val_loss: 3.1126 - val_accuracy: 0.0922 Epoch 94/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1292 - accuracy: 0.0775 - val_loss: 3.5850 - val_accuracy: 0.0355 Epoch 95/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1564 - accuracy: 0.0957 - val_loss: 3.1161 - val_accuracy: 0.0390 Epoch 96/100 21/21 [==============================] - 0s 3ms/step - loss: 3.0917 - accuracy: 0.0912 - val_loss: 3.0980 - val_accuracy: 0.0567 Epoch 97/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1061 - accuracy: 0.0760 - val_loss: 3.0975 - val_accuracy: 0.0390 Epoch 98/100 21/21 [==============================] - 0s 3ms/step - loss: 3.0769 - accuracy: 0.0912 - val_loss: 3.2535 - val_accuracy: 0.0496 Epoch 99/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1417 - accuracy: 0.0775 - val_loss: 3.2624 - val_accuracy: 0.0390 Epoch 100/100 21/21 [==============================] - 0s 3ms/step - loss: 3.0823 - accuracy: 0.0805 - val_loss: 3.1181 - val_accuracy: 0.1277
y_pred_2 = model_2.predict(X_test_tf)
9/9 [==============================] - 0s 2ms/step
model_2.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 1000us/step - loss: 3.1181 - accuracy: 0.1277
[3.1180949211120605, 0.12765957415103912]
df_history_2 = pd.DataFrame(history_2.history)
fig = px.line(df_history_2, y=['loss', 'val_loss'], labels=['Loss', 'Validation Loss'])
fig.show()
model_3 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_3.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.SGD(learning_rate=0.001), metrics=["accuracy"])
history_3 = model_3.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 0s 9ms/step - loss: 14.4892 - accuracy: 0.0213 - val_loss: 8.4357 - val_accuracy: 0.0567 Epoch 2/100 21/21 [==============================] - 0s 4ms/step - loss: 6.5982 - accuracy: 0.0426 - val_loss: 6.2855 - val_accuracy: 0.0213 Epoch 3/100 21/21 [==============================] - 0s 3ms/step - loss: 4.8942 - accuracy: 0.0532 - val_loss: 5.5672 - val_accuracy: 0.0284 Epoch 4/100 21/21 [==============================] - 0s 4ms/step - loss: 4.9371 - accuracy: 0.0684 - val_loss: 7.3668 - val_accuracy: 0.0532 Epoch 5/100 21/21 [==============================] - 0s 5ms/step - loss: 5.0061 - accuracy: 0.0745 - val_loss: 4.7228 - val_accuracy: 0.0780 Epoch 6/100 21/21 [==============================] - 0s 4ms/step - loss: 4.2409 - accuracy: 0.0836 - val_loss: 4.6796 - val_accuracy: 0.0390 Epoch 7/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8777 - accuracy: 0.0684 - val_loss: 4.4357 - val_accuracy: 0.0461 Epoch 8/100 21/21 [==============================] - 0s 4ms/step - loss: 3.6241 - accuracy: 0.1216 - val_loss: 4.6796 - val_accuracy: 0.0851 Epoch 9/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7667 - accuracy: 0.1246 - val_loss: 4.5609 - val_accuracy: 0.0319 Epoch 10/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4184 - accuracy: 0.1459 - val_loss: 3.4874 - val_accuracy: 0.1454 Epoch 11/100 21/21 [==============================] - 0s 3ms/step - loss: 3.3562 - accuracy: 0.1611 - val_loss: 3.5428 - val_accuracy: 0.1028 Epoch 12/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6389 - accuracy: 0.1125 - val_loss: 3.6217 - val_accuracy: 0.1560 Epoch 13/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1542 - accuracy: 0.1869 - val_loss: 3.4869 - val_accuracy: 0.1277 Epoch 14/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4395 - accuracy: 0.1565 - val_loss: 3.2579 - val_accuracy: 0.1773 Epoch 15/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1312 - accuracy: 0.1611 - val_loss: 4.1657 - val_accuracy: 0.0674 Epoch 16/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2345 - accuracy: 0.1900 - val_loss: 3.4449 - val_accuracy: 0.0922 Epoch 17/100 21/21 [==============================] - 0s 3ms/step - loss: 3.0898 - accuracy: 0.1748 - val_loss: 3.0265 - val_accuracy: 0.1879 Epoch 18/100 21/21 [==============================] - 0s 3ms/step - loss: 2.8511 - accuracy: 0.2356 - val_loss: 3.1371 - val_accuracy: 0.1489 Epoch 19/100 21/21 [==============================] - 0s 3ms/step - loss: 2.8250 - accuracy: 0.2097 - val_loss: 3.2919 - val_accuracy: 0.1064 Epoch 20/100 21/21 [==============================] - 0s 3ms/step - loss: 2.9119 - accuracy: 0.1930 - val_loss: 3.1271 - val_accuracy: 0.1525 Epoch 21/100 21/21 [==============================] - 0s 5ms/step - loss: 2.8047 - accuracy: 0.1945 - val_loss: 2.8109 - val_accuracy: 0.2376 Epoch 22/100 21/21 [==============================] - 0s 3ms/step - loss: 2.7372 - accuracy: 0.2629 - val_loss: 3.1432 - val_accuracy: 0.2021 Epoch 23/100 21/21 [==============================] - 0s 3ms/step - loss: 2.8168 - accuracy: 0.2067 - val_loss: 3.3895 - val_accuracy: 0.1241 Epoch 24/100 21/21 [==============================] - 0s 4ms/step - loss: 2.7250 - accuracy: 0.2796 - val_loss: 3.1474 - val_accuracy: 0.1667 Epoch 25/100 21/21 [==============================] - 0s 3ms/step - loss: 2.7716 - accuracy: 0.2264 - val_loss: 2.7814 - val_accuracy: 0.1241 Epoch 26/100 21/21 [==============================] - 0s 3ms/step - loss: 2.7485 - accuracy: 0.2416 - val_loss: 2.7163 - val_accuracy: 0.3050 Epoch 27/100 21/21 [==============================] - 0s 3ms/step - loss: 2.6468 - accuracy: 0.2492 - val_loss: 3.0344 - val_accuracy: 0.1667 Epoch 28/100 21/21 [==============================] - 0s 3ms/step - loss: 2.6338 - accuracy: 0.2629 - val_loss: 2.7243 - val_accuracy: 0.1383 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 2.5593 - accuracy: 0.2599 - val_loss: 2.7079 - val_accuracy: 0.2447 Epoch 30/100 21/21 [==============================] - 0s 3ms/step - loss: 2.6200 - accuracy: 0.2584 - val_loss: 2.7093 - val_accuracy: 0.1348 Epoch 31/100 21/21 [==============================] - 0s 3ms/step - loss: 2.6084 - accuracy: 0.2553 - val_loss: 2.5217 - val_accuracy: 0.2340 Epoch 32/100 21/21 [==============================] - 0s 3ms/step - loss: 2.6224 - accuracy: 0.2432 - val_loss: 2.7639 - val_accuracy: 0.1879 Epoch 33/100 21/21 [==============================] - 0s 3ms/step - loss: 2.5631 - accuracy: 0.2872 - val_loss: 2.6634 - val_accuracy: 0.1667 Epoch 34/100 21/21 [==============================] - 0s 3ms/step - loss: 2.5208 - accuracy: 0.2964 - val_loss: 2.8945 - val_accuracy: 0.2021 Epoch 35/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4612 - accuracy: 0.2933 - val_loss: 2.5743 - val_accuracy: 0.2199 Epoch 36/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4215 - accuracy: 0.2766 - val_loss: 2.6795 - val_accuracy: 0.2234 Epoch 37/100 21/21 [==============================] - 0s 3ms/step - loss: 2.5198 - accuracy: 0.2766 - val_loss: 2.7578 - val_accuracy: 0.2021 Epoch 38/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4607 - accuracy: 0.3435 - val_loss: 2.7972 - val_accuracy: 0.1667 Epoch 39/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4768 - accuracy: 0.2964 - val_loss: 2.6415 - val_accuracy: 0.1986 Epoch 40/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4624 - accuracy: 0.2812 - val_loss: 2.5825 - val_accuracy: 0.1986 Epoch 41/100 21/21 [==============================] - 0s 4ms/step - loss: 2.3713 - accuracy: 0.3541 - val_loss: 2.5483 - val_accuracy: 0.2518 Epoch 42/100 21/21 [==============================] - 0s 3ms/step - loss: 2.3607 - accuracy: 0.3100 - val_loss: 2.5171 - val_accuracy: 0.2092 Epoch 43/100 21/21 [==============================] - 0s 3ms/step - loss: 2.3741 - accuracy: 0.3207 - val_loss: 3.2491 - val_accuracy: 0.1596 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4644 - accuracy: 0.2857 - val_loss: 2.3219 - val_accuracy: 0.3404 Epoch 45/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2972 - accuracy: 0.3435 - val_loss: 2.4395 - val_accuracy: 0.3191 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4729 - accuracy: 0.2766 - val_loss: 2.9337 - val_accuracy: 0.1844 Epoch 47/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2877 - accuracy: 0.3419 - val_loss: 2.2959 - val_accuracy: 0.3688 Epoch 48/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2810 - accuracy: 0.3419 - val_loss: 3.1424 - val_accuracy: 0.2801 Epoch 49/100 21/21 [==============================] - 0s 3ms/step - loss: 2.3353 - accuracy: 0.3495 - val_loss: 2.5023 - val_accuracy: 0.1844 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2539 - accuracy: 0.3647 - val_loss: 2.5889 - val_accuracy: 0.1418 Epoch 51/100 21/21 [==============================] - 0s 2ms/step - loss: 2.2849 - accuracy: 0.3252 - val_loss: 2.3828 - val_accuracy: 0.2801 Epoch 52/100 21/21 [==============================] - 0s 2ms/step - loss: 2.2470 - accuracy: 0.3374 - val_loss: 2.6475 - val_accuracy: 0.1915 Epoch 53/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2288 - accuracy: 0.3602 - val_loss: 2.2823 - val_accuracy: 0.3156 Epoch 54/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1836 - accuracy: 0.3587 - val_loss: 2.2737 - val_accuracy: 0.3333 Epoch 55/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2491 - accuracy: 0.3663 - val_loss: 2.5052 - val_accuracy: 0.2979 Epoch 56/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1760 - accuracy: 0.3602 - val_loss: 2.4490 - val_accuracy: 0.2163 Epoch 57/100 21/21 [==============================] - 0s 4ms/step - loss: 2.1378 - accuracy: 0.3891 - val_loss: 2.3707 - val_accuracy: 0.3227 Epoch 58/100 21/21 [==============================] - 0s 4ms/step - loss: 2.1169 - accuracy: 0.3693 - val_loss: 2.2789 - val_accuracy: 0.3582 Epoch 59/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1599 - accuracy: 0.3663 - val_loss: 2.2884 - val_accuracy: 0.3582 Epoch 60/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0927 - accuracy: 0.3936 - val_loss: 2.7046 - val_accuracy: 0.2199 Epoch 61/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1461 - accuracy: 0.3815 - val_loss: 2.4644 - val_accuracy: 0.2872 Epoch 62/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1025 - accuracy: 0.3815 - val_loss: 2.8568 - val_accuracy: 0.2092 Epoch 63/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1007 - accuracy: 0.3708 - val_loss: 2.2001 - val_accuracy: 0.4113 Epoch 64/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0423 - accuracy: 0.3906 - val_loss: 2.2326 - val_accuracy: 0.3440 Epoch 65/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1045 - accuracy: 0.3799 - val_loss: 2.3143 - val_accuracy: 0.2979 Epoch 66/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0882 - accuracy: 0.3708 - val_loss: 2.3161 - val_accuracy: 0.3050 Epoch 67/100 21/21 [==============================] - 0s 3ms/step - loss: 2.1004 - accuracy: 0.3875 - val_loss: 2.2413 - val_accuracy: 0.3865 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0648 - accuracy: 0.4134 - val_loss: 2.2944 - val_accuracy: 0.2979 Epoch 69/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0142 - accuracy: 0.4255 - val_loss: 2.2155 - val_accuracy: 0.3156 Epoch 70/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0229 - accuracy: 0.4179 - val_loss: 2.1015 - val_accuracy: 0.4078 Epoch 71/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0482 - accuracy: 0.4210 - val_loss: 2.1063 - val_accuracy: 0.3475 Epoch 72/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0233 - accuracy: 0.4179 - val_loss: 2.4181 - val_accuracy: 0.2270 Epoch 73/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0023 - accuracy: 0.4331 - val_loss: 2.1582 - val_accuracy: 0.3688 Epoch 74/100 21/21 [==============================] - 0s 2ms/step - loss: 1.9476 - accuracy: 0.4711 - val_loss: 2.3384 - val_accuracy: 0.3652 Epoch 75/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9689 - accuracy: 0.4377 - val_loss: 2.4184 - val_accuracy: 0.3298 Epoch 76/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0148 - accuracy: 0.4210 - val_loss: 2.1212 - val_accuracy: 0.2943 Epoch 77/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9875 - accuracy: 0.4195 - val_loss: 2.1274 - val_accuracy: 0.3050 Epoch 78/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9610 - accuracy: 0.4407 - val_loss: 2.3009 - val_accuracy: 0.3227 Epoch 79/100 21/21 [==============================] - 0s 4ms/step - loss: 1.9883 - accuracy: 0.4179 - val_loss: 2.2773 - val_accuracy: 0.3511 Epoch 80/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9420 - accuracy: 0.4195 - val_loss: 2.0318 - val_accuracy: 0.3830 Epoch 81/100 21/21 [==============================] - 0s 4ms/step - loss: 1.9735 - accuracy: 0.4164 - val_loss: 2.1844 - val_accuracy: 0.2943 Epoch 82/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9507 - accuracy: 0.4362 - val_loss: 2.1373 - val_accuracy: 0.4220 Epoch 83/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9139 - accuracy: 0.4255 - val_loss: 2.2248 - val_accuracy: 0.3121 Epoch 84/100 21/21 [==============================] - 0s 2ms/step - loss: 1.9648 - accuracy: 0.4347 - val_loss: 2.1209 - val_accuracy: 0.3972 Epoch 85/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9527 - accuracy: 0.4164 - val_loss: 2.0651 - val_accuracy: 0.3404 Epoch 86/100 21/21 [==============================] - 0s 4ms/step - loss: 1.8993 - accuracy: 0.4514 - val_loss: 2.1670 - val_accuracy: 0.3475 Epoch 87/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8762 - accuracy: 0.4711 - val_loss: 2.0003 - val_accuracy: 0.4433 Epoch 88/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8697 - accuracy: 0.4650 - val_loss: 1.9363 - val_accuracy: 0.4539 Epoch 89/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9141 - accuracy: 0.4301 - val_loss: 2.4761 - val_accuracy: 0.2695 Epoch 90/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9037 - accuracy: 0.4438 - val_loss: 2.0287 - val_accuracy: 0.3546 Epoch 91/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8643 - accuracy: 0.4544 - val_loss: 1.9852 - val_accuracy: 0.3262 Epoch 92/100 21/21 [==============================] - 0s 2ms/step - loss: 1.8288 - accuracy: 0.4802 - val_loss: 1.8983 - val_accuracy: 0.4504 Epoch 93/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8636 - accuracy: 0.4559 - val_loss: 1.9676 - val_accuracy: 0.3440 Epoch 94/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8469 - accuracy: 0.4666 - val_loss: 2.2154 - val_accuracy: 0.3369 Epoch 95/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8647 - accuracy: 0.4498 - val_loss: 2.2801 - val_accuracy: 0.3050 Epoch 96/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8551 - accuracy: 0.4483 - val_loss: 1.9022 - val_accuracy: 0.4468 Epoch 97/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8276 - accuracy: 0.4635 - val_loss: 2.1067 - val_accuracy: 0.4539 Epoch 98/100 21/21 [==============================] - 0s 3ms/step - loss: 1.7975 - accuracy: 0.4818 - val_loss: 1.9873 - val_accuracy: 0.3440 Epoch 99/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8014 - accuracy: 0.4954 - val_loss: 2.0932 - val_accuracy: 0.3617 Epoch 100/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8349 - accuracy: 0.4650 - val_loss: 2.0703 - val_accuracy: 0.3298
y_pred_3 = model_3.predict(X_test_tf)
9/9 [==============================] - 0s 1ms/step
model_3.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 2ms/step - loss: 2.0703 - accuracy: 0.3298
[2.0702500343322754, 0.3297872245311737]
df_history_3 = pd.DataFrame(history_3.history)
fig = px.line(df_history_3, y=['loss', 'val_loss'], labels=['Loss', 'Validation Loss'])
fig.show()
model_4 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_4.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.SGD(learning_rate=0.005), metrics=["accuracy"])
history_4 = model_4.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 0s 8ms/step - loss: 19.1908 - accuracy: 0.0289 - val_loss: 3.7442 - val_accuracy: 0.1241 Epoch 2/100 21/21 [==============================] - 0s 4ms/step - loss: 3.7318 - accuracy: 0.0760 - val_loss: 3.7503 - val_accuracy: 0.0887 Epoch 3/100 21/21 [==============================] - 0s 3ms/step - loss: 3.7069 - accuracy: 0.0593 - val_loss: 3.6895 - val_accuracy: 0.1028 Epoch 4/100 21/21 [==============================] - 0s 3ms/step - loss: 3.6832 - accuracy: 0.0912 - val_loss: 3.6896 - val_accuracy: 0.0709 Epoch 5/100 21/21 [==============================] - 0s 4ms/step - loss: 3.6758 - accuracy: 0.0881 - val_loss: 3.7536 - val_accuracy: 0.1028 Epoch 6/100 21/21 [==============================] - 0s 4ms/step - loss: 3.6305 - accuracy: 0.0973 - val_loss: 3.7053 - val_accuracy: 0.0922 Epoch 7/100 21/21 [==============================] - 0s 4ms/step - loss: 3.5982 - accuracy: 0.1125 - val_loss: 3.6539 - val_accuracy: 0.0851 Epoch 8/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5693 - accuracy: 0.1277 - val_loss: 3.5997 - val_accuracy: 0.1099 Epoch 9/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5082 - accuracy: 0.1353 - val_loss: 3.6330 - val_accuracy: 0.0922 Epoch 10/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4939 - accuracy: 0.1398 - val_loss: 3.5490 - val_accuracy: 0.0922 Epoch 11/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4220 - accuracy: 0.1398 - val_loss: 3.6058 - val_accuracy: 0.0851 Epoch 12/100 21/21 [==============================] - 0s 3ms/step - loss: 3.4100 - accuracy: 0.1246 - val_loss: 3.5620 - val_accuracy: 0.1348 Epoch 13/100 21/21 [==============================] - 0s 3ms/step - loss: 3.3485 - accuracy: 0.1261 - val_loss: 3.4304 - val_accuracy: 0.0709 Epoch 14/100 21/21 [==============================] - 0s 3ms/step - loss: 3.3169 - accuracy: 0.1261 - val_loss: 3.4282 - val_accuracy: 0.1099 Epoch 15/100 21/21 [==============================] - 0s 3ms/step - loss: 3.3240 - accuracy: 0.1216 - val_loss: 3.4061 - val_accuracy: 0.0674 Epoch 16/100 21/21 [==============================] - 0s 3ms/step - loss: 3.2348 - accuracy: 0.1565 - val_loss: 3.4993 - val_accuracy: 0.1099 Epoch 17/100 21/21 [==============================] - 0s 3ms/step - loss: 3.1987 - accuracy: 0.1444 - val_loss: 3.3551 - val_accuracy: 0.1028 Epoch 18/100 21/21 [==============================] - 0s 5ms/step - loss: 3.1453 - accuracy: 0.1596 - val_loss: 3.4233 - val_accuracy: 0.0851 Epoch 19/100 21/21 [==============================] - 0s 4ms/step - loss: 3.0770 - accuracy: 0.1565 - val_loss: 3.3256 - val_accuracy: 0.0887 Epoch 20/100 21/21 [==============================] - 0s 5ms/step - loss: 3.0439 - accuracy: 0.1657 - val_loss: 3.0617 - val_accuracy: 0.1915 Epoch 21/100 21/21 [==============================] - 0s 5ms/step - loss: 3.0051 - accuracy: 0.1839 - val_loss: 3.1023 - val_accuracy: 0.1312 Epoch 22/100 21/21 [==============================] - 0s 5ms/step - loss: 2.9373 - accuracy: 0.1854 - val_loss: 3.2413 - val_accuracy: 0.1631 Epoch 23/100 21/21 [==============================] - 0s 4ms/step - loss: 2.9136 - accuracy: 0.1778 - val_loss: 3.0983 - val_accuracy: 0.1383 Epoch 24/100 21/21 [==============================] - 0s 3ms/step - loss: 2.8203 - accuracy: 0.1854 - val_loss: 2.9578 - val_accuracy: 0.1667 Epoch 25/100 21/21 [==============================] - 0s 3ms/step - loss: 2.7999 - accuracy: 0.2112 - val_loss: 2.9393 - val_accuracy: 0.1738 Epoch 26/100 21/21 [==============================] - 0s 3ms/step - loss: 2.7427 - accuracy: 0.2082 - val_loss: 2.9343 - val_accuracy: 0.1702 Epoch 27/100 21/21 [==============================] - 0s 3ms/step - loss: 2.7112 - accuracy: 0.2143 - val_loss: 2.7592 - val_accuracy: 0.2057 Epoch 28/100 21/21 [==============================] - 0s 3ms/step - loss: 2.6348 - accuracy: 0.2264 - val_loss: 2.7777 - val_accuracy: 0.2128 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 2.5542 - accuracy: 0.2538 - val_loss: 2.6700 - val_accuracy: 0.1879 Epoch 30/100 21/21 [==============================] - 0s 4ms/step - loss: 2.5250 - accuracy: 0.2644 - val_loss: 2.6458 - val_accuracy: 0.1667 Epoch 31/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4787 - accuracy: 0.2948 - val_loss: 2.6180 - val_accuracy: 0.1986 Epoch 32/100 21/21 [==============================] - 0s 3ms/step - loss: 2.4598 - accuracy: 0.2447 - val_loss: 2.4219 - val_accuracy: 0.2624 Epoch 33/100 21/21 [==============================] - 0s 3ms/step - loss: 2.3412 - accuracy: 0.2964 - val_loss: 2.5017 - val_accuracy: 0.2163 Epoch 34/100 21/21 [==============================] - 0s 3ms/step - loss: 2.3286 - accuracy: 0.3267 - val_loss: 2.5064 - val_accuracy: 0.1844 Epoch 35/100 21/21 [==============================] - 0s 3ms/step - loss: 2.3252 - accuracy: 0.3085 - val_loss: 2.4128 - val_accuracy: 0.1950 Epoch 36/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2664 - accuracy: 0.3191 - val_loss: 2.3075 - val_accuracy: 0.2872 Epoch 37/100 21/21 [==============================] - 0s 3ms/step - loss: 2.2031 - accuracy: 0.3450 - val_loss: 2.4057 - val_accuracy: 0.1986 Epoch 38/100 21/21 [==============================] - 0s 4ms/step - loss: 2.1000 - accuracy: 0.3967 - val_loss: 2.3282 - val_accuracy: 0.3262 Epoch 39/100 21/21 [==============================] - 0s 4ms/step - loss: 2.1212 - accuracy: 0.3906 - val_loss: 2.2808 - val_accuracy: 0.2730 Epoch 40/100 21/21 [==============================] - 0s 4ms/step - loss: 2.0923 - accuracy: 0.4027 - val_loss: 2.3329 - val_accuracy: 0.2128 Epoch 41/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0799 - accuracy: 0.3845 - val_loss: 2.2036 - val_accuracy: 0.2695 Epoch 42/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0314 - accuracy: 0.3906 - val_loss: 2.0455 - val_accuracy: 0.3121 Epoch 43/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9813 - accuracy: 0.4088 - val_loss: 2.0671 - val_accuracy: 0.4078 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9865 - accuracy: 0.4271 - val_loss: 2.3357 - val_accuracy: 0.2908 Epoch 45/100 21/21 [==============================] - 0s 3ms/step - loss: 2.0552 - accuracy: 0.3647 - val_loss: 2.0756 - val_accuracy: 0.3050 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9413 - accuracy: 0.4225 - val_loss: 2.0029 - val_accuracy: 0.3936 Epoch 47/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8788 - accuracy: 0.4483 - val_loss: 2.0009 - val_accuracy: 0.4255 Epoch 48/100 21/21 [==============================] - 0s 2ms/step - loss: 1.8806 - accuracy: 0.4590 - val_loss: 1.9303 - val_accuracy: 0.4149 Epoch 49/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9137 - accuracy: 0.4271 - val_loss: 2.0156 - val_accuracy: 0.3617 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 1.9472 - accuracy: 0.3982 - val_loss: 1.8541 - val_accuracy: 0.4574 Epoch 51/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8210 - accuracy: 0.4590 - val_loss: 2.0460 - val_accuracy: 0.3440 Epoch 52/100 21/21 [==============================] - 0s 3ms/step - loss: 1.8225 - accuracy: 0.4742 - val_loss: 1.9128 - val_accuracy: 0.4787 Epoch 53/100 21/21 [==============================] - 0s 3ms/step - loss: 1.7436 - accuracy: 0.5334 - val_loss: 2.2205 - val_accuracy: 0.3369 Epoch 54/100 21/21 [==============================] - 0s 4ms/step - loss: 1.7854 - accuracy: 0.4802 - val_loss: 1.8090 - val_accuracy: 0.5319 Epoch 55/100 21/21 [==============================] - 0s 3ms/step - loss: 1.7653 - accuracy: 0.4985 - val_loss: 1.7886 - val_accuracy: 0.4716 Epoch 56/100 21/21 [==============================] - 0s 3ms/step - loss: 1.7602 - accuracy: 0.4742 - val_loss: 1.7797 - val_accuracy: 0.5177 Epoch 57/100 21/21 [==============================] - 0s 3ms/step - loss: 1.7357 - accuracy: 0.4757 - val_loss: 2.4338 - val_accuracy: 0.2624 Epoch 58/100 21/21 [==============================] - 0s 3ms/step - loss: 1.7302 - accuracy: 0.4878 - val_loss: 1.9087 - val_accuracy: 0.3298 Epoch 59/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6937 - accuracy: 0.5076 - val_loss: 1.8943 - val_accuracy: 0.4149 Epoch 60/100 21/21 [==============================] - 0s 3ms/step - loss: 1.7237 - accuracy: 0.4757 - val_loss: 1.7826 - val_accuracy: 0.4716 Epoch 61/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6383 - accuracy: 0.5334 - val_loss: 1.7604 - val_accuracy: 0.4574 Epoch 62/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6049 - accuracy: 0.5426 - val_loss: 1.6902 - val_accuracy: 0.5142 Epoch 63/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6883 - accuracy: 0.5304 - val_loss: 1.7393 - val_accuracy: 0.4965 Epoch 64/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6303 - accuracy: 0.5228 - val_loss: 1.6676 - val_accuracy: 0.4858 Epoch 65/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6203 - accuracy: 0.5258 - val_loss: 1.7056 - val_accuracy: 0.4504 Epoch 66/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6256 - accuracy: 0.5076 - val_loss: 1.7786 - val_accuracy: 0.4823 Epoch 67/100 21/21 [==============================] - 0s 3ms/step - loss: 1.5594 - accuracy: 0.5790 - val_loss: 1.7894 - val_accuracy: 0.3723 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6233 - accuracy: 0.4818 - val_loss: 1.7214 - val_accuracy: 0.4433 Epoch 69/100 21/21 [==============================] - 0s 3ms/step - loss: 1.5848 - accuracy: 0.5137 - val_loss: 2.0790 - val_accuracy: 0.3121 Epoch 70/100 21/21 [==============================] - 0s 3ms/step - loss: 1.5753 - accuracy: 0.5380 - val_loss: 1.7696 - val_accuracy: 0.4255 Epoch 71/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6376 - accuracy: 0.5046 - val_loss: 1.7018 - val_accuracy: 0.4574 Epoch 72/100 21/21 [==============================] - 0s 4ms/step - loss: 1.5891 - accuracy: 0.5198 - val_loss: 1.7204 - val_accuracy: 0.4149 Epoch 73/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4951 - accuracy: 0.5669 - val_loss: 1.7573 - val_accuracy: 0.4255 Epoch 74/100 21/21 [==============================] - 0s 3ms/step - loss: 1.5089 - accuracy: 0.5638 - val_loss: 1.6802 - val_accuracy: 0.4326 Epoch 75/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4941 - accuracy: 0.5593 - val_loss: 1.7269 - val_accuracy: 0.5142 Epoch 76/100 21/21 [==============================] - 0s 4ms/step - loss: 1.5479 - accuracy: 0.5274 - val_loss: 1.7008 - val_accuracy: 0.4681 Epoch 77/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6475 - accuracy: 0.4544 - val_loss: 1.8921 - val_accuracy: 0.4681 Epoch 78/100 21/21 [==============================] - 0s 3ms/step - loss: 1.5451 - accuracy: 0.5091 - val_loss: 1.5821 - val_accuracy: 0.5461 Epoch 79/100 21/21 [==============================] - 0s 4ms/step - loss: 1.4566 - accuracy: 0.5669 - val_loss: 1.5991 - val_accuracy: 0.5106 Epoch 80/100 21/21 [==============================] - 0s 3ms/step - loss: 1.5596 - accuracy: 0.5106 - val_loss: 1.6597 - val_accuracy: 0.5035 Epoch 81/100 21/21 [==============================] - 0s 3ms/step - loss: 1.5099 - accuracy: 0.5380 - val_loss: 1.6798 - val_accuracy: 0.5177 Epoch 82/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4628 - accuracy: 0.5532 - val_loss: 1.9145 - val_accuracy: 0.3333 Epoch 83/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4944 - accuracy: 0.5456 - val_loss: 1.4914 - val_accuracy: 0.5603 Epoch 84/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4423 - accuracy: 0.5532 - val_loss: 1.5805 - val_accuracy: 0.5709 Epoch 85/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4379 - accuracy: 0.5669 - val_loss: 1.5908 - val_accuracy: 0.4574 Epoch 86/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4432 - accuracy: 0.5441 - val_loss: 1.6895 - val_accuracy: 0.4752 Epoch 87/100 21/21 [==============================] - 0s 3ms/step - loss: 1.3896 - accuracy: 0.5836 - val_loss: 1.6594 - val_accuracy: 0.3936 Epoch 88/100 21/21 [==============================] - 0s 6ms/step - loss: 1.4435 - accuracy: 0.5821 - val_loss: 1.4933 - val_accuracy: 0.5390 Epoch 89/100 21/21 [==============================] - 0s 4ms/step - loss: 1.5325 - accuracy: 0.5213 - val_loss: 1.5351 - val_accuracy: 0.4716 Epoch 90/100 21/21 [==============================] - 0s 4ms/step - loss: 1.3593 - accuracy: 0.6277 - val_loss: 1.8497 - val_accuracy: 0.4255 Epoch 91/100 21/21 [==============================] - 0s 5ms/step - loss: 1.4475 - accuracy: 0.5517 - val_loss: 1.5110 - val_accuracy: 0.4645 Epoch 92/100 21/21 [==============================] - 0s 4ms/step - loss: 1.3660 - accuracy: 0.5608 - val_loss: 1.5656 - val_accuracy: 0.5426 Epoch 93/100 21/21 [==============================] - 0s 4ms/step - loss: 1.3341 - accuracy: 0.5942 - val_loss: 1.7472 - val_accuracy: 0.4184 Epoch 94/100 21/21 [==============================] - 0s 3ms/step - loss: 1.3674 - accuracy: 0.5836 - val_loss: 1.5015 - val_accuracy: 0.4823 Epoch 95/100 21/21 [==============================] - 0s 3ms/step - loss: 1.3912 - accuracy: 0.5623 - val_loss: 1.5801 - val_accuracy: 0.4858 Epoch 96/100 21/21 [==============================] - 0s 3ms/step - loss: 1.3540 - accuracy: 0.6018 - val_loss: 2.3234 - val_accuracy: 0.2199 Epoch 97/100 21/21 [==============================] - 0s 3ms/step - loss: 1.4595 - accuracy: 0.5562 - val_loss: 1.5786 - val_accuracy: 0.5496 Epoch 98/100 21/21 [==============================] - 0s 3ms/step - loss: 1.3891 - accuracy: 0.6109 - val_loss: 1.5150 - val_accuracy: 0.5709 Epoch 99/100 21/21 [==============================] - 0s 3ms/step - loss: 1.2714 - accuracy: 0.6246 - val_loss: 1.4126 - val_accuracy: 0.6028 Epoch 100/100 21/21 [==============================] - 0s 3ms/step - loss: 1.3583 - accuracy: 0.5927 - val_loss: 1.4557 - val_accuracy: 0.5000
y_pred_4 = model_4.predict(X_test_tf)
9/9 [==============================] - 0s 0s/step
model_4.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 2ms/step - loss: 1.4557 - accuracy: 0.5000
[1.4557349681854248, 0.5]
df_history_4 = pd.DataFrame(history_4.history)
fig = px.line(df_history_4, y=['loss', 'val_loss'], labels=['Loss', 'Validation Loss'])
fig.show()
model_5 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_5.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.SGD(learning_rate=0.05), metrics=["accuracy"])
history_5 = model_5.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 1s 7ms/step - loss: 277.6228 - accuracy: 0.0167 - val_loss: 3.8519 - val_accuracy: 0.0035 Epoch 2/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8499 - accuracy: 0.0213 - val_loss: 3.8537 - val_accuracy: 0.0035 Epoch 3/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8492 - accuracy: 0.0137 - val_loss: 3.8553 - val_accuracy: 0.0035 Epoch 4/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8485 - accuracy: 0.0289 - val_loss: 3.8568 - val_accuracy: 0.0035 Epoch 5/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8480 - accuracy: 0.0289 - val_loss: 3.8584 - val_accuracy: 0.0035 Epoch 6/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8474 - accuracy: 0.0289 - val_loss: 3.8600 - val_accuracy: 0.0035 Epoch 7/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8469 - accuracy: 0.0289 - val_loss: 3.8616 - val_accuracy: 0.0035 Epoch 8/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8463 - accuracy: 0.0289 - val_loss: 3.8631 - val_accuracy: 0.0035 Epoch 9/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8457 - accuracy: 0.0289 - val_loss: 3.8646 - val_accuracy: 0.0035 Epoch 10/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8454 - accuracy: 0.0289 - val_loss: 3.8662 - val_accuracy: 0.0035 Epoch 11/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8448 - accuracy: 0.0289 - val_loss: 3.8676 - val_accuracy: 0.0035 Epoch 12/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8444 - accuracy: 0.0289 - val_loss: 3.8690 - val_accuracy: 0.0035 Epoch 13/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8439 - accuracy: 0.0289 - val_loss: 3.8704 - val_accuracy: 0.0035 Epoch 14/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8436 - accuracy: 0.0289 - val_loss: 3.8718 - val_accuracy: 0.0035 Epoch 15/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8432 - accuracy: 0.0289 - val_loss: 3.8732 - val_accuracy: 0.0035 Epoch 16/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8428 - accuracy: 0.0289 - val_loss: 3.8746 - val_accuracy: 0.0035 Epoch 17/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8424 - accuracy: 0.0289 - val_loss: 3.8760 - val_accuracy: 0.0035 Epoch 18/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8421 - accuracy: 0.0289 - val_loss: 3.8773 - val_accuracy: 0.0035 Epoch 19/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8417 - accuracy: 0.0289 - val_loss: 3.8785 - val_accuracy: 0.0035 Epoch 20/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8415 - accuracy: 0.0289 - val_loss: 3.8798 - val_accuracy: 0.0035 Epoch 21/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8411 - accuracy: 0.0289 - val_loss: 3.8809 - val_accuracy: 0.0035 Epoch 22/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8409 - accuracy: 0.0289 - val_loss: 3.8822 - val_accuracy: 0.0035 Epoch 23/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8406 - accuracy: 0.0289 - val_loss: 3.8834 - val_accuracy: 0.0035 Epoch 24/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8403 - accuracy: 0.0289 - val_loss: 3.8846 - val_accuracy: 0.0035 Epoch 25/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8402 - accuracy: 0.0289 - val_loss: 3.8858 - val_accuracy: 0.0035 Epoch 26/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8398 - accuracy: 0.0289 - val_loss: 3.8870 - val_accuracy: 0.0035 Epoch 27/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8395 - accuracy: 0.0289 - val_loss: 3.8881 - val_accuracy: 0.0035 Epoch 28/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8393 - accuracy: 0.0289 - val_loss: 3.8892 - val_accuracy: 0.0035 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8391 - accuracy: 0.0289 - val_loss: 3.8903 - val_accuracy: 0.0035 Epoch 30/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8389 - accuracy: 0.0289 - val_loss: 3.8913 - val_accuracy: 0.0035 Epoch 31/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8388 - accuracy: 0.0289 - val_loss: 3.8923 - val_accuracy: 0.0035 Epoch 32/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8386 - accuracy: 0.0289 - val_loss: 3.8933 - val_accuracy: 0.0035 Epoch 33/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8384 - accuracy: 0.0289 - val_loss: 3.8944 - val_accuracy: 0.0035 Epoch 34/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8382 - accuracy: 0.0289 - val_loss: 3.8954 - val_accuracy: 0.0035 Epoch 35/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8380 - accuracy: 0.0289 - val_loss: 3.8964 - val_accuracy: 0.0035 Epoch 36/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8379 - accuracy: 0.0289 - val_loss: 3.8974 - val_accuracy: 0.0035 Epoch 37/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8378 - accuracy: 0.0289 - val_loss: 3.8984 - val_accuracy: 0.0035 Epoch 38/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8376 - accuracy: 0.0289 - val_loss: 3.8992 - val_accuracy: 0.0035 Epoch 39/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8375 - accuracy: 0.0289 - val_loss: 3.9001 - val_accuracy: 0.0035 Epoch 40/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8373 - accuracy: 0.0289 - val_loss: 3.9009 - val_accuracy: 0.0035 Epoch 41/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8372 - accuracy: 0.0289 - val_loss: 3.9018 - val_accuracy: 0.0035 Epoch 42/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8372 - accuracy: 0.0289 - val_loss: 3.9025 - val_accuracy: 0.0035 Epoch 43/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8370 - accuracy: 0.0289 - val_loss: 3.9034 - val_accuracy: 0.0035 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8369 - accuracy: 0.0289 - val_loss: 3.9042 - val_accuracy: 0.0035 Epoch 45/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8368 - accuracy: 0.0289 - val_loss: 3.9051 - val_accuracy: 0.0035 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8367 - accuracy: 0.0289 - val_loss: 3.9059 - val_accuracy: 0.0035 Epoch 47/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8366 - accuracy: 0.0289 - val_loss: 3.9066 - val_accuracy: 0.0035 Epoch 48/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8365 - accuracy: 0.0289 - val_loss: 3.9074 - val_accuracy: 0.0035 Epoch 49/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8364 - accuracy: 0.0289 - val_loss: 3.9081 - val_accuracy: 0.0035 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8363 - accuracy: 0.0289 - val_loss: 3.9089 - val_accuracy: 0.0035 Epoch 51/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8362 - accuracy: 0.0289 - val_loss: 3.9096 - val_accuracy: 0.0035 Epoch 52/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8362 - accuracy: 0.0289 - val_loss: 3.9103 - val_accuracy: 0.0035 Epoch 53/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8361 - accuracy: 0.0289 - val_loss: 3.9109 - val_accuracy: 0.0035 Epoch 54/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8361 - accuracy: 0.0289 - val_loss: 3.9115 - val_accuracy: 0.0035 Epoch 55/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8360 - accuracy: 0.0289 - val_loss: 3.9120 - val_accuracy: 0.0035 Epoch 56/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8359 - accuracy: 0.0289 - val_loss: 3.9127 - val_accuracy: 0.0035 Epoch 57/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8359 - accuracy: 0.0289 - val_loss: 3.9133 - val_accuracy: 0.0035 Epoch 58/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8358 - accuracy: 0.0289 - val_loss: 3.9138 - val_accuracy: 0.0035 Epoch 59/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8358 - accuracy: 0.0289 - val_loss: 3.9145 - val_accuracy: 0.0035 Epoch 60/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8357 - accuracy: 0.0289 - val_loss: 3.9150 - val_accuracy: 0.0035 Epoch 61/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8357 - accuracy: 0.0289 - val_loss: 3.9156 - val_accuracy: 0.0035 Epoch 62/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8355 - accuracy: 0.0289 - val_loss: 3.9160 - val_accuracy: 0.0035 Epoch 63/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8356 - accuracy: 0.0289 - val_loss: 3.9166 - val_accuracy: 0.0035 Epoch 64/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8356 - accuracy: 0.0289 - val_loss: 3.9172 - val_accuracy: 0.0035 Epoch 65/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8355 - accuracy: 0.0289 - val_loss: 3.9177 - val_accuracy: 0.0035 Epoch 66/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8355 - accuracy: 0.0289 - val_loss: 3.9182 - val_accuracy: 0.0035 Epoch 67/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8354 - accuracy: 0.0289 - val_loss: 3.9188 - val_accuracy: 0.0035 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8353 - accuracy: 0.0289 - val_loss: 3.9193 - val_accuracy: 0.0035 Epoch 69/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8353 - accuracy: 0.0289 - val_loss: 3.9198 - val_accuracy: 0.0035 Epoch 70/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8353 - accuracy: 0.0289 - val_loss: 3.9203 - val_accuracy: 0.0035 Epoch 71/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8352 - accuracy: 0.0289 - val_loss: 3.9208 - val_accuracy: 0.0035 Epoch 72/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8352 - accuracy: 0.0289 - val_loss: 3.9212 - val_accuracy: 0.0035 Epoch 73/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8352 - accuracy: 0.0289 - val_loss: 3.9217 - val_accuracy: 0.0035 Epoch 74/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8352 - accuracy: 0.0289 - val_loss: 3.9221 - val_accuracy: 0.0035 Epoch 75/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8351 - accuracy: 0.0289 - val_loss: 3.9225 - val_accuracy: 0.0035 Epoch 76/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8351 - accuracy: 0.0289 - val_loss: 3.9230 - val_accuracy: 0.0035 Epoch 77/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8350 - accuracy: 0.0289 - val_loss: 3.9234 - val_accuracy: 0.0035 Epoch 78/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8350 - accuracy: 0.0289 - val_loss: 3.9238 - val_accuracy: 0.0035 Epoch 79/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8350 - accuracy: 0.0289 - val_loss: 3.9241 - val_accuracy: 0.0035 Epoch 80/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8350 - accuracy: 0.0289 - val_loss: 3.9245 - val_accuracy: 0.0035 Epoch 81/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8350 - accuracy: 0.0289 - val_loss: 3.9249 - val_accuracy: 0.0035 Epoch 82/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8349 - accuracy: 0.0289 - val_loss: 3.9254 - val_accuracy: 0.0035 Epoch 83/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8349 - accuracy: 0.0289 - val_loss: 3.9257 - val_accuracy: 0.0035 Epoch 84/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8350 - accuracy: 0.0289 - val_loss: 3.9261 - val_accuracy: 0.0035 Epoch 85/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8349 - accuracy: 0.0289 - val_loss: 3.9264 - val_accuracy: 0.0035 Epoch 86/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8349 - accuracy: 0.0289 - val_loss: 3.9267 - val_accuracy: 0.0035 Epoch 87/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8349 - accuracy: 0.0289 - val_loss: 3.9270 - val_accuracy: 0.0035 Epoch 88/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8348 - accuracy: 0.0289 - val_loss: 3.9275 - val_accuracy: 0.0035 Epoch 89/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8348 - accuracy: 0.0289 - val_loss: 3.9278 - val_accuracy: 0.0035 Epoch 90/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8348 - accuracy: 0.0289 - val_loss: 3.9281 - val_accuracy: 0.0035 Epoch 91/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8348 - accuracy: 0.0289 - val_loss: 3.9285 - val_accuracy: 0.0035 Epoch 92/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8347 - accuracy: 0.0289 - val_loss: 3.9289 - val_accuracy: 0.0035 Epoch 93/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8348 - accuracy: 0.0289 - val_loss: 3.9293 - val_accuracy: 0.0035 Epoch 94/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8348 - accuracy: 0.0289 - val_loss: 3.9297 - val_accuracy: 0.0035 Epoch 95/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8347 - accuracy: 0.0289 - val_loss: 3.9300 - val_accuracy: 0.0035 Epoch 96/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8347 - accuracy: 0.0289 - val_loss: 3.9303 - val_accuracy: 0.0035 Epoch 97/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8347 - accuracy: 0.0289 - val_loss: 3.9305 - val_accuracy: 0.0035 Epoch 98/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8347 - accuracy: 0.0289 - val_loss: 3.9307 - val_accuracy: 0.0035 Epoch 99/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8347 - accuracy: 0.0289 - val_loss: 3.9311 - val_accuracy: 0.0035 Epoch 100/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8347 - accuracy: 0.0289 - val_loss: 3.9314 - val_accuracy: 0.0035
y_pred_5 = model_5.predict(X_test_tf)
9/9 [==============================] - 0s 2ms/step
model_5.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 2ms/step - loss: 3.9314 - accuracy: 0.0035
[3.9313576221466064, 0.003546099178493023]
df_history_5 = pd.DataFrame(history_5.history)
fig = px.line(df_history_5, y=['loss', 'val_loss'], labels=['Loss', 'Validation Loss'])
fig.show()
This wil indicate probablity of first preictions being in each class.
y_pred_1[0]
array([4.8449532e-08, 3.5367210e-16, 7.6645368e-04, 3.1939714e-04,
2.4672414e-04, 1.2412488e-07, 2.2907568e-07, 2.4982702e-04,
1.4525743e-06, 3.7733134e-05, 6.2474800e-07, 2.2881359e-04,
2.1208020e-08, 2.6287230e-13, 7.6839191e-10, 8.7677210e-05,
3.6283085e-04, 4.8827951e-06, 1.6351011e-06, 8.1181475e-05,
1.2000803e-05, 1.3543415e-05, 1.0420146e-03, 1.0558730e-13,
6.4393108e-10, 4.0226284e-04, 1.3963463e-06, 1.0608255e-04,
9.9502450e-01, 1.0040873e-09, 1.0059102e-05, 5.0157132e-07,
1.9160314e-13, 9.2843658e-12, 3.5786619e-13, 8.6034364e-05,
6.2172984e-07, 7.3428723e-08, 1.2153090e-04, 2.0742400e-04,
5.7648699e-04, 5.2906084e-06, 1.8398772e-08, 2.7886523e-11,
4.2623782e-07, 6.3658958e-09, 6.3064179e-11], dtype=float32)
This will get all prediction classes of Test dataset.
y_pred_1.argmax(axis=1)
array([28, 46, 2, 29, 18, 32, 15, 10, 19, 31, 13, 7, 3, 21, 40, 33, 27,
29, 22, 13, 33, 4, 31, 22, 8, 15, 0, 6, 34, 4, 13, 4, 30, 19,
14, 41, 28, 28, 43, 20, 28, 42, 9, 18, 28, 1, 40, 24, 43, 35, 36,
28, 31, 30, 12, 46, 4, 0, 12, 12, 32, 23, 6, 10, 13, 44, 8, 15,
12, 32, 21, 25, 11, 22, 26, 23, 32, 8, 34, 14, 45, 33, 46, 17, 20,
26, 8, 13, 11, 22, 33, 11, 15, 28, 8, 20, 33, 10, 37, 43, 11, 9,
32, 33, 18, 30, 6, 21, 18, 21, 40, 33, 34, 36, 5, 17, 21, 37, 22,
43, 41, 6, 35, 2, 1, 35, 9, 26, 40, 11, 44, 6, 10, 14, 43, 26,
13, 2, 45, 12, 20, 42, 16, 23, 24, 11, 24, 17, 27, 9, 7, 37, 24,
28, 23, 18, 21, 3, 14, 14, 23, 43, 41, 13, 16, 14, 9, 18, 32, 35,
7, 42, 21, 11, 46, 32, 24, 27, 27, 46, 19, 10, 32, 9, 1, 44, 6,
36, 27, 46, 36, 46, 43, 27, 1, 37, 45, 23, 38, 27, 19, 29, 23, 40,
0, 37, 30, 7, 28, 44, 40, 41, 13, 0, 38, 14, 13, 18, 22, 18, 1,
43, 13, 10, 27, 19, 12, 45, 42, 6, 42, 27, 40, 17, 26, 41, 40, 19,
6, 6, 44, 32, 12, 45, 25, 16, 7, 39, 18, 32, 41, 46, 27, 21, 12,
32, 43, 39, 38, 3, 18, 37, 23, 35, 23, 24, 37, 44, 14, 44, 24, 19,
42, 20, 7, 11, 33, 6, 27, 3, 12, 46], dtype=int64)
# This is original result
y_test_tf
<tf.Tensor: shape=(282,), dtype=float64, numpy=
array([28., 46., 2., 29., 18., 32., 15., 10., 19., 31., 13., 7., 3.,
21., 40., 33., 27., 29., 22., 13., 33., 4., 31., 22., 8., 15.,
0., 6., 34., 4., 13., 4., 30., 19., 14., 41., 28., 28., 43.,
20., 28., 42., 9., 18., 28., 1., 40., 24., 43., 35., 36., 28.,
31., 30., 12., 46., 4., 0., 12., 12., 32., 23., 6., 10., 13.,
44., 8., 15., 12., 32., 21., 25., 11., 22., 26., 23., 32., 8.,
34., 14., 45., 33., 46., 17., 20., 26., 8., 13., 11., 22., 33.,
11., 15., 28., 8., 20., 33., 10., 37., 43., 11., 9., 32., 33.,
18., 30., 6., 21., 18., 21., 40., 33., 34., 36., 5., 17., 21.,
37., 22., 43., 41., 6., 35., 2., 1., 35., 9., 26., 40., 11.,
44., 6., 10., 14., 43., 26., 13., 2., 45., 12., 20., 42., 16.,
23., 24., 11., 24., 17., 27., 9., 7., 37., 24., 28., 23., 18.,
21., 3., 14., 14., 23., 43., 41., 13., 16., 14., 9., 18., 32.,
35., 7., 42., 21., 11., 46., 32., 24., 27., 27., 46., 19., 10.,
32., 9., 1., 44., 6., 36., 27., 46., 36., 46., 43., 27., 1.,
37., 45., 23., 38., 27., 19., 29., 23., 40., 0., 37., 30., 7.,
28., 44., 40., 41., 13., 0., 38., 14., 13., 18., 22., 18., 1.,
43., 13., 10., 38., 19., 12., 45., 42., 6., 42., 27., 40., 17.,
26., 41., 40., 19., 6., 6., 44., 32., 12., 45., 25., 16., 7.,
39., 18., 32., 41., 46., 27., 21., 12., 32., 43., 39., 38., 3.,
18., 37., 23., 35., 23., 24., 37., 44., 14., 44., 24., 19., 42.,
20., 7., 11., 33., 6., 27., 3., 12., 46.])>
acc_1 = accuracy_score(y_test_tf, y_pred_1.argmax(axis=1))
acc_2 = accuracy_score(y_test_tf, y_pred_2.argmax(axis=1))
acc_3 = accuracy_score(y_test_tf, y_pred_3.argmax(axis=1))
acc_4 = accuracy_score(y_test_tf, y_pred_4.argmax(axis=1))
acc_5 = accuracy_score(y_test_tf, y_pred_5.argmax(axis=1))
Let's plot accuracy for all 5 model
plt.bar(x=["Model 1", "Model 2", "Model 3", "Model 4", "Model 5"], height=[acc_1, acc_2, acc_3, acc_4, acc_5])
<BarContainer object of 5 artists>
Before that, let's explore results through confusion matrix
import itertools
import matplotlib.pyplot as plt
import numpy as np
from sklearn.metrics import confusion_matrix
# Our function needs a different name to sklearn's plot_confusion_matrix
def make_confusion_matrix(y_true, y_pred, classes=None, figsize=(10, 10), text_size=15, norm=False, savefig=False):
"""Makes a labelled confusion matrix comparing predictions and ground truth labels.
If classes is passed, confusion matrix will be labelled, if not, integer class values
will be used.
Args:
y_true: Array of truth labels (must be same shape as y_pred).
y_pred: Array of predicted labels (must be same shape as y_true).
classes: Array of class labels (e.g. string form). If `None`, integer labels are used.
figsize: Size of output figure (default=(10, 10)).
text_size: Size of output figure text (default=15).
norm: normalize values or not (default=False).
savefig: save confusion matrix to file (default=False).
Returns:
A labelled confusion matrix plot comparing y_true and y_pred.
Example usage:
make_confusion_matrix(y_true=test_labels, # ground truth test labels
y_pred=y_preds, # predicted labels
classes=class_names, # array of class label names
figsize=(15, 15),
text_size=10)
"""
# Create the confustion matrix
cm = confusion_matrix(y_true, y_pred)
cm_norm = cm.astype("float") / cm.sum(axis=1)[:, np.newaxis] # normalize it
n_classes = cm.shape[0] # find the number of classes we're dealing with
# Plot the figure and make it pretty
fig, ax = plt.subplots(figsize=figsize)
cax = ax.matshow(cm, cmap=plt.cm.Blues) # colors will represent how 'correct' a class is, darker == better
fig.colorbar(cax)
# Are there a list of classes?
if classes:
labels = classes
else:
labels = np.arange(cm.shape[0])
# Label the axes
ax.set(title="Confusion Matrix",
xlabel="Predicted label",
ylabel="True label",
xticks=np.arange(n_classes), # create enough axis slots for each class
yticks=np.arange(n_classes),
xticklabels=labels, # axes will labeled with class names (if they exist) or ints
yticklabels=labels)
# Make x-axis labels appear on bottom
ax.xaxis.set_label_position("bottom")
ax.xaxis.tick_bottom()
# Set the threshold for different colors
threshold = (cm.max() + cm.min()) / 2.
# Plot the text on each cell
for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
if norm:
plt.text(j, i, f"{cm[i, j]} ({cm_norm[i, j] * 100:.1f}%)",
horizontalalignment="center",
color="white" if cm[i, j] > threshold else "black",
size=text_size)
else:
plt.text(j, i, f"{cm[i, j]}",
horizontalalignment="center",
color="white" if cm[i, j] > threshold else "black",
size=text_size)
# Save the figure to the current working directory
if savefig:
fig.savefig("confusion_matrix.png")
It seems more organized and predicted values are mostly true.
make_confusion_matrix(y_test_tf, y_pred_1.argmax(axis=1), figsize=(30, 30), text_size=10, classes=list(ordinalencoder.categories_[0]))
This output seems to have bias and most of the predictions happeed in two classes.
make_confusion_matrix(y_test_tf, y_pred_2.argmax(axis=1), figsize=(30, 30), text_size=10, classes=list(ordinalencoder.categories_[0]))
This model's prediction seems all over the place without any clear pattern.
make_confusion_matrix(y_test_tf, y_pred_3.argmax(axis=1), figsize=(30, 30), text_size=10, classes=list(ordinalencoder.categories_[0]))
This model's result is also similar to Model 3
make_confusion_matrix(y_test_tf, y_pred_4.argmax(axis=1), figsize=(30, 30), text_size=10, classes=list(ordinalencoder.categories_[0]))
This model seems to think every character is from Cerea.
make_confusion_matrix(y_test_tf, y_pred_5.argmax(axis=1), figsize=(30, 30), text_size=10, classes=list(ordinalencoder.categories_[0]))
Since we got expected output from Model 1. Let's explore it a bit by changing learning rate
model_1_1 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_1_1.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.Adam(learning_rate=0.1), metrics=["accuracy"])
history_1_1 = model_1_1.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 1s 8ms/step - loss: 53.6355 - accuracy: 0.0182 - val_loss: 3.9202 - val_accuracy: 0.0071 Epoch 2/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8961 - accuracy: 0.0122 - val_loss: 3.9395 - val_accuracy: 0.0071 Epoch 3/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8687 - accuracy: 0.0213 - val_loss: 3.9444 - val_accuracy: 0.0071 Epoch 4/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8581 - accuracy: 0.0258 - val_loss: 3.9426 - val_accuracy: 0.0035 Epoch 5/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8605 - accuracy: 0.0122 - val_loss: 3.9452 - val_accuracy: 0.0035 Epoch 6/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8567 - accuracy: 0.0228 - val_loss: 3.9431 - val_accuracy: 0.0106 Epoch 7/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8678 - accuracy: 0.0228 - val_loss: 3.9531 - val_accuracy: 0.0035 Epoch 8/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8566 - accuracy: 0.0228 - val_loss: 3.9449 - val_accuracy: 0.0106 Epoch 9/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8574 - accuracy: 0.0258 - val_loss: 3.9453 - val_accuracy: 0.0035 Epoch 10/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8628 - accuracy: 0.0122 - val_loss: 3.9482 - val_accuracy: 0.0071 Epoch 11/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8594 - accuracy: 0.0243 - val_loss: 3.9528 - val_accuracy: 0.0106 Epoch 12/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8582 - accuracy: 0.0213 - val_loss: 3.9539 - val_accuracy: 0.0035 Epoch 13/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8600 - accuracy: 0.0228 - val_loss: 3.9523 - val_accuracy: 0.0035 Epoch 14/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8582 - accuracy: 0.0137 - val_loss: 3.9338 - val_accuracy: 0.0106 Epoch 15/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8605 - accuracy: 0.0167 - val_loss: 3.9658 - val_accuracy: 0.0106 Epoch 16/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8561 - accuracy: 0.0319 - val_loss: 3.9517 - val_accuracy: 0.0035 Epoch 17/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8604 - accuracy: 0.0167 - val_loss: 3.9411 - val_accuracy: 0.0071 Epoch 18/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8624 - accuracy: 0.0213 - val_loss: 3.9519 - val_accuracy: 0.0071 Epoch 19/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8595 - accuracy: 0.0274 - val_loss: 3.9433 - val_accuracy: 0.0035 Epoch 20/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8669 - accuracy: 0.0274 - val_loss: 3.9622 - val_accuracy: 0.0106 Epoch 21/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8598 - accuracy: 0.0106 - val_loss: 3.9476 - val_accuracy: 0.0142 Epoch 22/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8565 - accuracy: 0.0274 - val_loss: 3.9422 - val_accuracy: 0.0106 Epoch 23/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8604 - accuracy: 0.0274 - val_loss: 3.9476 - val_accuracy: 0.0035 Epoch 24/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8600 - accuracy: 0.0243 - val_loss: 3.9494 - val_accuracy: 0.0071 Epoch 25/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8583 - accuracy: 0.0243 - val_loss: 3.9563 - val_accuracy: 0.0035 Epoch 26/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8601 - accuracy: 0.0243 - val_loss: 3.9355 - val_accuracy: 0.0106 Epoch 27/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8561 - accuracy: 0.0228 - val_loss: 3.9466 - val_accuracy: 0.0071 Epoch 28/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8631 - accuracy: 0.0274 - val_loss: 3.9624 - val_accuracy: 0.0035 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8639 - accuracy: 0.0228 - val_loss: 3.9558 - val_accuracy: 0.0071 Epoch 30/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8586 - accuracy: 0.0213 - val_loss: 3.9381 - val_accuracy: 0.0106 Epoch 31/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8642 - accuracy: 0.0304 - val_loss: 3.9563 - val_accuracy: 0.0035 Epoch 32/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8599 - accuracy: 0.0198 - val_loss: 3.9525 - val_accuracy: 0.0035 Epoch 33/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8675 - accuracy: 0.0213 - val_loss: 3.9478 - val_accuracy: 0.0071 Epoch 34/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8623 - accuracy: 0.0137 - val_loss: 3.9496 - val_accuracy: 0.0035 Epoch 35/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8588 - accuracy: 0.0167 - val_loss: 3.9499 - val_accuracy: 0.0071 Epoch 36/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8638 - accuracy: 0.0167 - val_loss: 3.9555 - val_accuracy: 0.0071 Epoch 37/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8617 - accuracy: 0.0274 - val_loss: 3.9470 - val_accuracy: 0.0035 Epoch 38/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8656 - accuracy: 0.0198 - val_loss: 3.9422 - val_accuracy: 0.0071 Epoch 39/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8643 - accuracy: 0.0243 - val_loss: 3.9567 - val_accuracy: 0.0035 Epoch 40/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8619 - accuracy: 0.0213 - val_loss: 3.9471 - val_accuracy: 0.0035 Epoch 41/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8599 - accuracy: 0.0167 - val_loss: 3.9593 - val_accuracy: 0.0071 Epoch 42/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8643 - accuracy: 0.0152 - val_loss: 3.9307 - val_accuracy: 0.0035 Epoch 43/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8713 - accuracy: 0.0213 - val_loss: 3.9613 - val_accuracy: 0.0142 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8652 - accuracy: 0.0198 - val_loss: 3.9382 - val_accuracy: 0.0106 Epoch 45/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8575 - accuracy: 0.0243 - val_loss: 3.9572 - val_accuracy: 0.0106 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8542 - accuracy: 0.0243 - val_loss: 3.9486 - val_accuracy: 0.0035 Epoch 47/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8624 - accuracy: 0.0213 - val_loss: 3.9454 - val_accuracy: 0.0142 Epoch 48/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8618 - accuracy: 0.0167 - val_loss: 3.9538 - val_accuracy: 0.0035 Epoch 49/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8592 - accuracy: 0.0152 - val_loss: 3.9499 - val_accuracy: 0.0035 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8624 - accuracy: 0.0243 - val_loss: 3.9573 - val_accuracy: 0.0071 Epoch 51/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8600 - accuracy: 0.0228 - val_loss: 3.9375 - val_accuracy: 0.0035 Epoch 52/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8587 - accuracy: 0.0152 - val_loss: 3.9472 - val_accuracy: 0.0106 Epoch 53/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8629 - accuracy: 0.0076 - val_loss: 3.9530 - val_accuracy: 0.0035 Epoch 54/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8608 - accuracy: 0.0213 - val_loss: 3.9669 - val_accuracy: 0.0106 Epoch 55/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8585 - accuracy: 0.0243 - val_loss: 3.9443 - val_accuracy: 0.0106 Epoch 56/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8599 - accuracy: 0.0228 - val_loss: 3.9470 - val_accuracy: 0.0071 Epoch 57/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8575 - accuracy: 0.0274 - val_loss: 3.9529 - val_accuracy: 0.0035 Epoch 58/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8546 - accuracy: 0.0258 - val_loss: 3.9454 - val_accuracy: 0.0071 Epoch 59/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8560 - accuracy: 0.0198 - val_loss: 3.9519 - val_accuracy: 0.0106 Epoch 60/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8630 - accuracy: 0.0258 - val_loss: 3.9707 - val_accuracy: 0.0035 Epoch 61/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8606 - accuracy: 0.0213 - val_loss: 3.9417 - val_accuracy: 0.0071 Epoch 62/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8615 - accuracy: 0.0198 - val_loss: 3.9519 - val_accuracy: 0.0142 Epoch 63/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8588 - accuracy: 0.0198 - val_loss: 3.9616 - val_accuracy: 0.0035 Epoch 64/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8574 - accuracy: 0.0167 - val_loss: 3.9396 - val_accuracy: 0.0071 Epoch 65/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8583 - accuracy: 0.0198 - val_loss: 3.9582 - val_accuracy: 0.0035 Epoch 66/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8568 - accuracy: 0.0152 - val_loss: 3.9471 - val_accuracy: 0.0106 Epoch 67/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8640 - accuracy: 0.0289 - val_loss: 3.9629 - val_accuracy: 0.0035 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8693 - accuracy: 0.0243 - val_loss: 3.9379 - val_accuracy: 0.0071 Epoch 69/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8619 - accuracy: 0.0198 - val_loss: 3.9534 - val_accuracy: 0.0071 Epoch 70/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8649 - accuracy: 0.0152 - val_loss: 3.9517 - val_accuracy: 0.0071 Epoch 71/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8626 - accuracy: 0.0167 - val_loss: 3.9363 - val_accuracy: 0.0035 Epoch 72/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8588 - accuracy: 0.0198 - val_loss: 3.9397 - val_accuracy: 0.0035 Epoch 73/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8597 - accuracy: 0.0289 - val_loss: 3.9692 - val_accuracy: 0.0106 Epoch 74/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8636 - accuracy: 0.0258 - val_loss: 3.9348 - val_accuracy: 0.0142 Epoch 75/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8642 - accuracy: 0.0243 - val_loss: 3.9492 - val_accuracy: 0.0035 Epoch 76/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8625 - accuracy: 0.0198 - val_loss: 3.9669 - val_accuracy: 0.0106 Epoch 77/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8667 - accuracy: 0.0198 - val_loss: 3.9400 - val_accuracy: 0.0106 Epoch 78/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8652 - accuracy: 0.0228 - val_loss: 3.9542 - val_accuracy: 0.0071 Epoch 79/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8614 - accuracy: 0.0137 - val_loss: 3.9426 - val_accuracy: 0.0106 Epoch 80/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8634 - accuracy: 0.0182 - val_loss: 3.9423 - val_accuracy: 0.0035 Epoch 81/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8634 - accuracy: 0.0106 - val_loss: 3.9531 - val_accuracy: 0.0106 Epoch 82/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8724 - accuracy: 0.0274 - val_loss: 3.9495 - val_accuracy: 0.0071 Epoch 83/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8591 - accuracy: 0.0258 - val_loss: 3.9594 - val_accuracy: 0.0035 Epoch 84/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8625 - accuracy: 0.0228 - val_loss: 3.9427 - val_accuracy: 0.0106 Epoch 85/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8615 - accuracy: 0.0182 - val_loss: 3.9609 - val_accuracy: 0.0035 Epoch 86/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8648 - accuracy: 0.0167 - val_loss: 3.9391 - val_accuracy: 0.0071 Epoch 87/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8582 - accuracy: 0.0137 - val_loss: 3.9451 - val_accuracy: 0.0106 Epoch 88/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8570 - accuracy: 0.0198 - val_loss: 3.9507 - val_accuracy: 0.0035 Epoch 89/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8659 - accuracy: 0.0167 - val_loss: 3.9547 - val_accuracy: 0.0071 Epoch 90/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8668 - accuracy: 0.0258 - val_loss: 3.9539 - val_accuracy: 0.0035 Epoch 91/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8648 - accuracy: 0.0122 - val_loss: 3.9342 - val_accuracy: 0.0106 Epoch 92/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8616 - accuracy: 0.0182 - val_loss: 3.9546 - val_accuracy: 0.0071 Epoch 93/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8619 - accuracy: 0.0152 - val_loss: 3.9498 - val_accuracy: 0.0035 Epoch 94/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8610 - accuracy: 0.0182 - val_loss: 3.9435 - val_accuracy: 0.0035 Epoch 95/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8632 - accuracy: 0.0289 - val_loss: 3.9537 - val_accuracy: 0.0071 Epoch 96/100 21/21 [==============================] - 0s 4ms/step - loss: 3.8627 - accuracy: 0.0167 - val_loss: 3.9493 - val_accuracy: 0.0071 Epoch 97/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8660 - accuracy: 0.0243 - val_loss: 3.9548 - val_accuracy: 0.0071 Epoch 98/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8615 - accuracy: 0.0182 - val_loss: 3.9417 - val_accuracy: 0.0035 Epoch 99/100 21/21 [==============================] - 0s 2ms/step - loss: 3.8581 - accuracy: 0.0243 - val_loss: 3.9537 - val_accuracy: 0.0071 Epoch 100/100 21/21 [==============================] - 0s 3ms/step - loss: 3.8598 - accuracy: 0.0213 - val_loss: 3.9460 - val_accuracy: 0.0106
y_pred_1_1 = model_1.predict(X_test_tf)
9/9 [==============================] - 0s 0s/step
model_1_1.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 2ms/step - loss: 3.9460 - accuracy: 0.0106
[3.9459519386291504, 0.010638297535479069]
plot_loss_curves(history_1_1)
As expected, since Model has very high learning rate. We hit new bottom for accuracy.
model_1_2 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_1_2.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.Adam(learning_rate=0.01), metrics=["accuracy"])
history_1_2 = model_1_2.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 1s 8ms/step - loss: 28.1268 - accuracy: 0.0471 - val_loss: 9.9578 - val_accuracy: 0.0957 Epoch 2/100 21/21 [==============================] - 0s 3ms/step - loss: 5.6975 - accuracy: 0.1064 - val_loss: 3.3248 - val_accuracy: 0.0922 Epoch 3/100 21/21 [==============================] - 0s 3ms/step - loss: 3.0338 - accuracy: 0.1702 - val_loss: 2.7307 - val_accuracy: 0.2589 Epoch 4/100 21/21 [==============================] - 0s 3ms/step - loss: 2.3799 - accuracy: 0.4271 - val_loss: 2.0575 - val_accuracy: 0.5213 Epoch 5/100 21/21 [==============================] - 0s 3ms/step - loss: 1.6325 - accuracy: 0.6900 - val_loss: 1.3633 - val_accuracy: 0.7482 Epoch 6/100 21/21 [==============================] - 0s 3ms/step - loss: 1.0342 - accuracy: 0.8450 - val_loss: 0.7562 - val_accuracy: 0.9184 Epoch 7/100 21/21 [==============================] - 0s 3ms/step - loss: 0.5954 - accuracy: 0.9179 - val_loss: 0.5698 - val_accuracy: 0.9184 Epoch 8/100 21/21 [==============================] - 0s 3ms/step - loss: 0.3564 - accuracy: 0.9468 - val_loss: 0.3329 - val_accuracy: 0.9504 Epoch 9/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2401 - accuracy: 0.9666 - val_loss: 0.3125 - val_accuracy: 0.9539 Epoch 10/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1744 - accuracy: 0.9802 - val_loss: 0.1963 - val_accuracy: 0.9681 Epoch 11/100 21/21 [==============================] - 0s 5ms/step - loss: 0.1265 - accuracy: 0.9818 - val_loss: 0.1153 - val_accuracy: 0.9858 Epoch 12/100 21/21 [==============================] - 0s 5ms/step - loss: 0.0973 - accuracy: 0.9863 - val_loss: 0.1302 - val_accuracy: 0.9681 Epoch 13/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0886 - accuracy: 0.9894 - val_loss: 0.1073 - val_accuracy: 0.9894 Epoch 14/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0761 - accuracy: 0.9939 - val_loss: 0.1004 - val_accuracy: 0.9752 Epoch 15/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0573 - accuracy: 0.9909 - val_loss: 0.1056 - val_accuracy: 0.9894 Epoch 16/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0612 - accuracy: 0.9954 - val_loss: 0.0754 - val_accuracy: 0.9929 Epoch 17/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0501 - accuracy: 0.9939 - val_loss: 0.0679 - val_accuracy: 0.9894 Epoch 18/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0367 - accuracy: 0.9954 - val_loss: 0.0657 - val_accuracy: 0.9894 Epoch 19/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0418 - accuracy: 0.9939 - val_loss: 0.0563 - val_accuracy: 0.9929 Epoch 20/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0268 - accuracy: 0.9970 - val_loss: 0.0589 - val_accuracy: 0.9929 Epoch 21/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0307 - accuracy: 0.9954 - val_loss: 0.0539 - val_accuracy: 0.9894 Epoch 22/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0278 - accuracy: 0.9954 - val_loss: 0.0577 - val_accuracy: 0.9858 Epoch 23/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0209 - accuracy: 0.9954 - val_loss: 0.0536 - val_accuracy: 0.9929 Epoch 24/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0198 - accuracy: 0.9985 - val_loss: 0.0449 - val_accuracy: 0.9929 Epoch 25/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0151 - accuracy: 1.0000 - val_loss: 0.0468 - val_accuracy: 0.9929 Epoch 26/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0120 - accuracy: 1.0000 - val_loss: 0.0551 - val_accuracy: 0.9929 Epoch 27/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0129 - accuracy: 0.9985 - val_loss: 0.0487 - val_accuracy: 0.9929 Epoch 28/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0103 - accuracy: 1.0000 - val_loss: 0.0510 - val_accuracy: 0.9929 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0096 - accuracy: 0.9985 - val_loss: 0.0465 - val_accuracy: 0.9929 Epoch 30/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0126 - accuracy: 0.9970 - val_loss: 0.0503 - val_accuracy: 0.9858 Epoch 31/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0124 - accuracy: 0.9985 - val_loss: 0.0491 - val_accuracy: 0.9929 Epoch 32/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0152 - accuracy: 0.9985 - val_loss: 0.0483 - val_accuracy: 0.9823 Epoch 33/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0116 - accuracy: 0.9985 - val_loss: 0.0573 - val_accuracy: 0.9929 Epoch 34/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0073 - accuracy: 1.0000 - val_loss: 0.0575 - val_accuracy: 0.9929 Epoch 35/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0072 - accuracy: 1.0000 - val_loss: 0.0480 - val_accuracy: 0.9929 Epoch 36/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0054 - accuracy: 1.0000 - val_loss: 0.0492 - val_accuracy: 0.9929 Epoch 37/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0043 - accuracy: 1.0000 - val_loss: 0.0489 - val_accuracy: 0.9929 Epoch 38/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0040 - accuracy: 1.0000 - val_loss: 0.0472 - val_accuracy: 0.9929 Epoch 39/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0037 - accuracy: 1.0000 - val_loss: 0.0487 - val_accuracy: 0.9929 Epoch 40/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0034 - accuracy: 1.0000 - val_loss: 0.0500 - val_accuracy: 0.9929 Epoch 41/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0034 - accuracy: 1.0000 - val_loss: 0.0472 - val_accuracy: 0.9929 Epoch 42/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0034 - accuracy: 1.0000 - val_loss: 0.0481 - val_accuracy: 0.9929 Epoch 43/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0031 - accuracy: 1.0000 - val_loss: 0.0477 - val_accuracy: 0.9929 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0030 - accuracy: 1.0000 - val_loss: 0.0481 - val_accuracy: 0.9929 Epoch 45/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0028 - accuracy: 1.0000 - val_loss: 0.0469 - val_accuracy: 0.9929 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0028 - accuracy: 1.0000 - val_loss: 0.0473 - val_accuracy: 0.9929 Epoch 47/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0025 - accuracy: 1.0000 - val_loss: 0.0490 - val_accuracy: 0.9929 Epoch 48/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0025 - accuracy: 1.0000 - val_loss: 0.0471 - val_accuracy: 0.9929 Epoch 49/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0024 - accuracy: 1.0000 - val_loss: 0.0485 - val_accuracy: 0.9929 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0023 - accuracy: 1.0000 - val_loss: 0.0484 - val_accuracy: 0.9929 Epoch 51/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0022 - accuracy: 1.0000 - val_loss: 0.0512 - val_accuracy: 0.9929 Epoch 52/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0021 - accuracy: 1.0000 - val_loss: 0.0488 - val_accuracy: 0.9929 Epoch 53/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0022 - accuracy: 1.0000 - val_loss: 0.0487 - val_accuracy: 0.9929 Epoch 54/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0019 - accuracy: 1.0000 - val_loss: 0.0489 - val_accuracy: 0.9929 Epoch 55/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0019 - accuracy: 1.0000 - val_loss: 0.0476 - val_accuracy: 0.9929 Epoch 56/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0018 - accuracy: 1.0000 - val_loss: 0.0504 - val_accuracy: 0.9929 Epoch 57/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0018 - accuracy: 1.0000 - val_loss: 0.0486 - val_accuracy: 0.9929 Epoch 58/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0017 - accuracy: 1.0000 - val_loss: 0.0487 - val_accuracy: 0.9929 Epoch 59/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0016 - accuracy: 1.0000 - val_loss: 0.0487 - val_accuracy: 0.9929 Epoch 60/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0016 - accuracy: 1.0000 - val_loss: 0.0486 - val_accuracy: 0.9929 Epoch 61/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0016 - accuracy: 1.0000 - val_loss: 0.0492 - val_accuracy: 0.9929 Epoch 62/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0015 - accuracy: 1.0000 - val_loss: 0.0489 - val_accuracy: 0.9929 Epoch 63/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0015 - accuracy: 1.0000 - val_loss: 0.0508 - val_accuracy: 0.9929 Epoch 64/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0014 - accuracy: 1.0000 - val_loss: 0.0505 - val_accuracy: 0.9929 Epoch 65/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0014 - accuracy: 1.0000 - val_loss: 0.0504 - val_accuracy: 0.9929 Epoch 66/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0013 - accuracy: 1.0000 - val_loss: 0.0500 - val_accuracy: 0.9929 Epoch 67/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0013 - accuracy: 1.0000 - val_loss: 0.0502 - val_accuracy: 0.9929 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0012 - accuracy: 1.0000 - val_loss: 0.0500 - val_accuracy: 0.9929 Epoch 69/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0012 - accuracy: 1.0000 - val_loss: 0.0518 - val_accuracy: 0.9929 Epoch 70/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0012 - accuracy: 1.0000 - val_loss: 0.0503 - val_accuracy: 0.9929 Epoch 71/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0011 - accuracy: 1.0000 - val_loss: 0.0510 - val_accuracy: 0.9929 Epoch 72/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0011 - accuracy: 1.0000 - val_loss: 0.0494 - val_accuracy: 0.9929 Epoch 73/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0011 - accuracy: 1.0000 - val_loss: 0.0508 - val_accuracy: 0.9929 Epoch 74/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0011 - accuracy: 1.0000 - val_loss: 0.0505 - val_accuracy: 0.9929 Epoch 75/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0010 - accuracy: 1.0000 - val_loss: 0.0506 - val_accuracy: 0.9929 Epoch 76/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0010 - accuracy: 1.0000 - val_loss: 0.0509 - val_accuracy: 0.9929 Epoch 77/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0010 - accuracy: 1.0000 - val_loss: 0.0500 - val_accuracy: 0.9929 Epoch 78/100 21/21 [==============================] - 0s 3ms/step - loss: 9.3633e-04 - accuracy: 1.0000 - val_loss: 0.0511 - val_accuracy: 0.9929 Epoch 79/100 21/21 [==============================] - 0s 3ms/step - loss: 9.2529e-04 - accuracy: 1.0000 - val_loss: 0.0506 - val_accuracy: 0.9929 Epoch 80/100 21/21 [==============================] - 0s 3ms/step - loss: 8.8564e-04 - accuracy: 1.0000 - val_loss: 0.0522 - val_accuracy: 0.9929 Epoch 81/100 21/21 [==============================] - 0s 3ms/step - loss: 8.7344e-04 - accuracy: 1.0000 - val_loss: 0.0505 - val_accuracy: 0.9929 Epoch 82/100 21/21 [==============================] - 0s 3ms/step - loss: 8.6250e-04 - accuracy: 1.0000 - val_loss: 0.0510 - val_accuracy: 0.9929 Epoch 83/100 21/21 [==============================] - 0s 2ms/step - loss: 8.3301e-04 - accuracy: 1.0000 - val_loss: 0.0516 - val_accuracy: 0.9929 Epoch 84/100 21/21 [==============================] - 0s 3ms/step - loss: 8.0602e-04 - accuracy: 1.0000 - val_loss: 0.0514 - val_accuracy: 0.9929 Epoch 85/100 21/21 [==============================] - 0s 3ms/step - loss: 7.8845e-04 - accuracy: 1.0000 - val_loss: 0.0519 - val_accuracy: 0.9929 Epoch 86/100 21/21 [==============================] - 0s 3ms/step - loss: 7.7483e-04 - accuracy: 1.0000 - val_loss: 0.0515 - val_accuracy: 0.9929 Epoch 87/100 21/21 [==============================] - 0s 3ms/step - loss: 7.6943e-04 - accuracy: 1.0000 - val_loss: 0.0522 - val_accuracy: 0.9929 Epoch 88/100 21/21 [==============================] - 0s 2ms/step - loss: 7.3379e-04 - accuracy: 1.0000 - val_loss: 0.0514 - val_accuracy: 0.9929 Epoch 89/100 21/21 [==============================] - 0s 3ms/step - loss: 7.1255e-04 - accuracy: 1.0000 - val_loss: 0.0518 - val_accuracy: 0.9929 Epoch 90/100 21/21 [==============================] - 0s 2ms/step - loss: 6.9511e-04 - accuracy: 1.0000 - val_loss: 0.0525 - val_accuracy: 0.9929 Epoch 91/100 21/21 [==============================] - 0s 2ms/step - loss: 6.7389e-04 - accuracy: 1.0000 - val_loss: 0.0522 - val_accuracy: 0.9929 Epoch 92/100 21/21 [==============================] - 0s 3ms/step - loss: 6.7589e-04 - accuracy: 1.0000 - val_loss: 0.0523 - val_accuracy: 0.9929 Epoch 93/100 21/21 [==============================] - 0s 3ms/step - loss: 6.4772e-04 - accuracy: 1.0000 - val_loss: 0.0516 - val_accuracy: 0.9929 Epoch 94/100 21/21 [==============================] - 0s 2ms/step - loss: 6.4342e-04 - accuracy: 1.0000 - val_loss: 0.0517 - val_accuracy: 0.9929 Epoch 95/100 21/21 [==============================] - 0s 2ms/step - loss: 6.2847e-04 - accuracy: 1.0000 - val_loss: 0.0532 - val_accuracy: 0.9929 Epoch 96/100 21/21 [==============================] - 0s 2ms/step - loss: 6.0936e-04 - accuracy: 1.0000 - val_loss: 0.0524 - val_accuracy: 0.9929 Epoch 97/100 21/21 [==============================] - 0s 3ms/step - loss: 5.9772e-04 - accuracy: 1.0000 - val_loss: 0.0524 - val_accuracy: 0.9929 Epoch 98/100 21/21 [==============================] - 0s 3ms/step - loss: 5.8020e-04 - accuracy: 1.0000 - val_loss: 0.0524 - val_accuracy: 0.9929 Epoch 99/100 21/21 [==============================] - 0s 3ms/step - loss: 5.7273e-04 - accuracy: 1.0000 - val_loss: 0.0524 - val_accuracy: 0.9929 Epoch 100/100 21/21 [==============================] - 0s 3ms/step - loss: 5.5205e-04 - accuracy: 1.0000 - val_loss: 0.0528 - val_accuracy: 0.9929
y_pred_1_2 = model_1_2.predict(X_test_tf)
9/9 [==============================] - 0s 0s/step
model_1_2.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 2ms/step - loss: 0.0528 - accuracy: 0.9929
[0.052771955728530884, 0.9929078221321106]
plot_loss_curves(history_1_2)
Now this result seems more align with what we expecting.
Let's see if we can improve it by further reducing learning rate.
model_1_3 = tf.keras.Sequential([
layers.Input(shape=(X_train.shape[1],)),
layers.Dense(256, activation="relu"),
layers.Dense(47, activation="softmax")
])
model_1_3.compile(loss="sparse_categorical_crossentropy", optimizer=optimizers.Adam(learning_rate=0.001), metrics=["accuracy"])
history_1_3 = model_1_3.fit(X_train_tf, y_train_tf, epochs=100, validation_data=(X_test, y_test))
Epoch 1/100 21/21 [==============================] - 1s 10ms/step - loss: 21.4124 - accuracy: 0.0350 - val_loss: 8.0968 - val_accuracy: 0.0142 Epoch 2/100 21/21 [==============================] - 0s 3ms/step - loss: 6.0075 - accuracy: 0.0638 - val_loss: 4.4360 - val_accuracy: 0.1028 Epoch 3/100 21/21 [==============================] - 0s 3ms/step - loss: 3.5829 - accuracy: 0.2143 - val_loss: 3.0788 - val_accuracy: 0.2695 Epoch 4/100 21/21 [==============================] - 0s 3ms/step - loss: 2.7309 - accuracy: 0.3632 - val_loss: 2.6305 - val_accuracy: 0.2979 Epoch 5/100 21/21 [==============================] - 0s 4ms/step - loss: 2.1874 - accuracy: 0.4985 - val_loss: 2.0552 - val_accuracy: 0.5816 Epoch 6/100 21/21 [==============================] - 0s 4ms/step - loss: 1.8488 - accuracy: 0.6185 - val_loss: 1.8536 - val_accuracy: 0.6277 Epoch 7/100 21/21 [==============================] - 0s 4ms/step - loss: 1.4629 - accuracy: 0.7492 - val_loss: 1.4397 - val_accuracy: 0.7872 Epoch 8/100 21/21 [==============================] - 0s 3ms/step - loss: 1.2706 - accuracy: 0.8207 - val_loss: 1.3079 - val_accuracy: 0.7270 Epoch 9/100 21/21 [==============================] - 0s 3ms/step - loss: 1.1388 - accuracy: 0.8055 - val_loss: 1.1291 - val_accuracy: 0.7624 Epoch 10/100 21/21 [==============================] - 0s 2ms/step - loss: 1.0247 - accuracy: 0.8359 - val_loss: 0.9254 - val_accuracy: 0.8688 Epoch 11/100 21/21 [==============================] - 0s 2ms/step - loss: 0.7912 - accuracy: 0.9119 - val_loss: 0.7445 - val_accuracy: 0.9397 Epoch 12/100 21/21 [==============================] - 0s 2ms/step - loss: 0.6409 - accuracy: 0.9362 - val_loss: 0.6798 - val_accuracy: 0.9291 Epoch 13/100 21/21 [==============================] - 0s 2ms/step - loss: 0.5822 - accuracy: 0.9331 - val_loss: 0.6345 - val_accuracy: 0.9078 Epoch 14/100 21/21 [==============================] - 0s 2ms/step - loss: 0.5288 - accuracy: 0.9316 - val_loss: 0.5047 - val_accuracy: 0.9574 Epoch 15/100 21/21 [==============================] - 0s 3ms/step - loss: 0.4193 - accuracy: 0.9635 - val_loss: 0.4281 - val_accuracy: 0.9504 Epoch 16/100 21/21 [==============================] - 0s 3ms/step - loss: 0.3703 - accuracy: 0.9635 - val_loss: 0.4067 - val_accuracy: 0.9574 Epoch 17/100 21/21 [==============================] - 0s 2ms/step - loss: 0.3314 - accuracy: 0.9696 - val_loss: 0.3649 - val_accuracy: 0.9716 Epoch 18/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2965 - accuracy: 0.9574 - val_loss: 0.3166 - val_accuracy: 0.9787 Epoch 19/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2504 - accuracy: 0.9742 - val_loss: 0.3093 - val_accuracy: 0.9539 Epoch 20/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2477 - accuracy: 0.9711 - val_loss: 0.2629 - val_accuracy: 0.9716 Epoch 21/100 21/21 [==============================] - 0s 3ms/step - loss: 0.2201 - accuracy: 0.9757 - val_loss: 0.2399 - val_accuracy: 0.9681 Epoch 22/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1990 - accuracy: 0.9772 - val_loss: 0.2013 - val_accuracy: 0.9823 Epoch 23/100 21/21 [==============================] - 0s 4ms/step - loss: 0.1739 - accuracy: 0.9833 - val_loss: 0.2013 - val_accuracy: 0.9823 Epoch 24/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1686 - accuracy: 0.9787 - val_loss: 0.1869 - val_accuracy: 0.9823 Epoch 25/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1669 - accuracy: 0.9802 - val_loss: 0.1896 - val_accuracy: 0.9752 Epoch 26/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1558 - accuracy: 0.9787 - val_loss: 0.1855 - val_accuracy: 0.9787 Epoch 27/100 21/21 [==============================] - 0s 2ms/step - loss: 0.1309 - accuracy: 0.9894 - val_loss: 0.1637 - val_accuracy: 0.9787 Epoch 28/100 21/21 [==============================] - 0s 2ms/step - loss: 0.1442 - accuracy: 0.9787 - val_loss: 0.1479 - val_accuracy: 0.9858 Epoch 29/100 21/21 [==============================] - 0s 3ms/step - loss: 0.1181 - accuracy: 0.9802 - val_loss: 0.1650 - val_accuracy: 0.9610 Epoch 30/100 21/21 [==============================] - 0s 2ms/step - loss: 0.1254 - accuracy: 0.9833 - val_loss: 0.1434 - val_accuracy: 0.9823 Epoch 31/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0973 - accuracy: 0.9954 - val_loss: 0.1188 - val_accuracy: 0.9823 Epoch 32/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0927 - accuracy: 0.9863 - val_loss: 0.1099 - val_accuracy: 0.9894 Epoch 33/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0884 - accuracy: 0.9909 - val_loss: 0.1219 - val_accuracy: 0.9858 Epoch 34/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0869 - accuracy: 0.9939 - val_loss: 0.1220 - val_accuracy: 0.9787 Epoch 35/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0953 - accuracy: 0.9818 - val_loss: 0.1143 - val_accuracy: 0.9823 Epoch 36/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0864 - accuracy: 0.9878 - val_loss: 0.1117 - val_accuracy: 0.9787 Epoch 37/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0734 - accuracy: 0.9909 - val_loss: 0.0915 - val_accuracy: 0.9787 Epoch 38/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0882 - accuracy: 0.9833 - val_loss: 0.0952 - val_accuracy: 0.9929 Epoch 39/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0718 - accuracy: 0.9909 - val_loss: 0.1084 - val_accuracy: 0.9787 Epoch 40/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0608 - accuracy: 0.9970 - val_loss: 0.0790 - val_accuracy: 0.9929 Epoch 41/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0628 - accuracy: 0.9909 - val_loss: 0.0824 - val_accuracy: 0.9929 Epoch 42/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0574 - accuracy: 0.9954 - val_loss: 0.0728 - val_accuracy: 0.9894 Epoch 43/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0507 - accuracy: 0.9970 - val_loss: 0.0751 - val_accuracy: 0.9929 Epoch 44/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0513 - accuracy: 0.9954 - val_loss: 0.0699 - val_accuracy: 0.9929 Epoch 45/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0448 - accuracy: 0.9970 - val_loss: 0.0792 - val_accuracy: 0.9787 Epoch 46/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0460 - accuracy: 0.9939 - val_loss: 0.0759 - val_accuracy: 0.9894 Epoch 47/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0425 - accuracy: 0.9954 - val_loss: 0.0676 - val_accuracy: 0.9894 Epoch 48/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0426 - accuracy: 0.9970 - val_loss: 0.0870 - val_accuracy: 0.9787 Epoch 49/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0388 - accuracy: 0.9985 - val_loss: 0.0617 - val_accuracy: 0.9929 Epoch 50/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0408 - accuracy: 0.9970 - val_loss: 0.0560 - val_accuracy: 0.9929 Epoch 51/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0340 - accuracy: 0.9970 - val_loss: 0.0560 - val_accuracy: 0.9929 Epoch 52/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0370 - accuracy: 0.9954 - val_loss: 0.0575 - val_accuracy: 0.9929 Epoch 53/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0340 - accuracy: 0.9970 - val_loss: 0.0551 - val_accuracy: 0.9929 Epoch 54/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0322 - accuracy: 0.9970 - val_loss: 0.0571 - val_accuracy: 0.9929 Epoch 55/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0337 - accuracy: 0.9985 - val_loss: 0.0547 - val_accuracy: 0.9929 Epoch 56/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0291 - accuracy: 0.9970 - val_loss: 0.0535 - val_accuracy: 0.9894 Epoch 57/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0289 - accuracy: 0.9985 - val_loss: 0.0473 - val_accuracy: 0.9929 Epoch 58/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0286 - accuracy: 0.9970 - val_loss: 0.0701 - val_accuracy: 0.9787 Epoch 59/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0294 - accuracy: 0.9985 - val_loss: 0.0685 - val_accuracy: 0.9823 Epoch 60/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0266 - accuracy: 0.9985 - val_loss: 0.0484 - val_accuracy: 0.9929 Epoch 61/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0242 - accuracy: 1.0000 - val_loss: 0.0466 - val_accuracy: 0.9929 Epoch 62/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0239 - accuracy: 0.9985 - val_loss: 0.0472 - val_accuracy: 0.9929 Epoch 63/100 21/21 [==============================] - 0s 5ms/step - loss: 0.0211 - accuracy: 0.9985 - val_loss: 0.0474 - val_accuracy: 0.9929 Epoch 64/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0202 - accuracy: 1.0000 - val_loss: 0.0441 - val_accuracy: 0.9929 Epoch 65/100 21/21 [==============================] - 0s 5ms/step - loss: 0.0204 - accuracy: 0.9985 - val_loss: 0.0443 - val_accuracy: 0.9929 Epoch 66/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0185 - accuracy: 1.0000 - val_loss: 0.0629 - val_accuracy: 0.9787 Epoch 67/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0222 - accuracy: 0.9985 - val_loss: 0.0458 - val_accuracy: 0.9929 Epoch 68/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0214 - accuracy: 1.0000 - val_loss: 0.0419 - val_accuracy: 0.9929 Epoch 69/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0181 - accuracy: 1.0000 - val_loss: 0.0539 - val_accuracy: 0.9858 Epoch 70/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0181 - accuracy: 0.9985 - val_loss: 0.0480 - val_accuracy: 0.9929 Epoch 71/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0174 - accuracy: 0.9985 - val_loss: 0.0417 - val_accuracy: 0.9894 Epoch 72/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0172 - accuracy: 0.9985 - val_loss: 0.0436 - val_accuracy: 0.9929 Epoch 73/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0179 - accuracy: 1.0000 - val_loss: 0.0730 - val_accuracy: 0.9823 Epoch 74/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0195 - accuracy: 0.9985 - val_loss: 0.0398 - val_accuracy: 0.9929 Epoch 75/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0158 - accuracy: 0.9985 - val_loss: 0.0390 - val_accuracy: 0.9929 Epoch 76/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0142 - accuracy: 1.0000 - val_loss: 0.0406 - val_accuracy: 0.9929 Epoch 77/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0128 - accuracy: 1.0000 - val_loss: 0.0403 - val_accuracy: 0.9929 Epoch 78/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0128 - accuracy: 1.0000 - val_loss: 0.0407 - val_accuracy: 0.9929 Epoch 79/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0124 - accuracy: 1.0000 - val_loss: 0.0392 - val_accuracy: 0.9929 Epoch 80/100 21/21 [==============================] - 0s 4ms/step - loss: 0.0122 - accuracy: 1.0000 - val_loss: 0.0380 - val_accuracy: 0.9929 Epoch 81/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0119 - accuracy: 1.0000 - val_loss: 0.0412 - val_accuracy: 0.9929 Epoch 82/100 21/21 [==============================] - 0s 5ms/step - loss: 0.0122 - accuracy: 1.0000 - val_loss: 0.0380 - val_accuracy: 0.9894 Epoch 83/100 21/21 [==============================] - 0s 5ms/step - loss: 0.0118 - accuracy: 1.0000 - val_loss: 0.0408 - val_accuracy: 0.9929 Epoch 84/100 21/21 [==============================] - 0s 5ms/step - loss: 0.0123 - accuracy: 0.9985 - val_loss: 0.0395 - val_accuracy: 0.9929 Epoch 85/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0116 - accuracy: 1.0000 - val_loss: 0.0345 - val_accuracy: 0.9929 Epoch 86/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0106 - accuracy: 1.0000 - val_loss: 0.0421 - val_accuracy: 0.9929 Epoch 87/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0103 - accuracy: 1.0000 - val_loss: 0.0356 - val_accuracy: 0.9929 Epoch 88/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0106 - accuracy: 1.0000 - val_loss: 0.0365 - val_accuracy: 0.9929 Epoch 89/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0107 - accuracy: 1.0000 - val_loss: 0.0379 - val_accuracy: 0.9929 Epoch 90/100 21/21 [==============================] - 0s 2ms/step - loss: 0.0092 - accuracy: 1.0000 - val_loss: 0.0385 - val_accuracy: 0.9894 Epoch 91/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0094 - accuracy: 1.0000 - val_loss: 0.0422 - val_accuracy: 0.9894 Epoch 92/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0093 - accuracy: 1.0000 - val_loss: 0.0365 - val_accuracy: 0.9929 Epoch 93/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0087 - accuracy: 1.0000 - val_loss: 0.0349 - val_accuracy: 0.9929 Epoch 94/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0081 - accuracy: 1.0000 - val_loss: 0.0366 - val_accuracy: 0.9929 Epoch 95/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0089 - accuracy: 1.0000 - val_loss: 0.0417 - val_accuracy: 0.9894 Epoch 96/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0085 - accuracy: 1.0000 - val_loss: 0.0383 - val_accuracy: 0.9929 Epoch 97/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0077 - accuracy: 1.0000 - val_loss: 0.0372 - val_accuracy: 0.9929 Epoch 98/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0075 - accuracy: 1.0000 - val_loss: 0.0359 - val_accuracy: 0.9929 Epoch 99/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0072 - accuracy: 1.0000 - val_loss: 0.0372 - val_accuracy: 0.9929 Epoch 100/100 21/21 [==============================] - 0s 3ms/step - loss: 0.0084 - accuracy: 1.0000 - val_loss: 0.0385 - val_accuracy: 0.9929
y_pred_1_3 = model_1_3.predict(X_test_tf)
9/9 [==============================] - 0s 0s/step
model_1_3.evaluate(X_test_tf, y_test_tf)
9/9 [==============================] - 0s 2ms/step - loss: 0.0385 - accuracy: 0.9929
[0.03845573216676712, 0.9929078221321106]
plot_loss_curves(history_1_3)
accuracy_score(y_test_tf, y_pred_1_1.argmax(axis=1))
0.9964539007092199
accuracy_score(y_test_tf, y_pred_1_2.argmax(axis=1))
0.9929078014184397
accuracy_score(y_test_tf, y_pred_1_3.argmax(axis=1))
0.9929078014184397